Realtime vs Cloud Firestore: quale database Firebase scegliere
Pubblicato: 2018-10-12La cronologia risale al database di Firebase non troppo oltre. Nata come piattaforma di sviluppo mobile e web, Firebase è nata nel 2011 e poi nel 2014 è stata acquisita dal gigante tecnologico Google e il suo destino è cambiato.
Saltando la storia dell'evoluzione di Firebase, a un anno dalla sua acquisizione da parte di Google, è stato fuso con Divshot e da allora si è ampliato fino a diventare una piattaforma unificata per sviluppatori mobili.
Firebase ora si integra con vari altri servizi Google per offrire prodotti più ampi e scalabili per gli sviluppatori. In effetti, i vantaggi che offre rendono Firebase per le startup un processo di tendenza.
Allora, cos'è il database Firebase? Firebase è un BaaS, ovvero Backend as a Service. Utilizzando i prodotti forniti da Firebase, non sono solo gli sviluppatori di dispositivi mobili a poter creare applicazioni di alta qualità. Google ha lanciato anche diverse nuove funzionalità per gli utenti Web di Firebase .
Esistono due prodotti di Firebase che consentono di realizzare tutte le applicazioni appena citate. Firestore in tempo reale e cloud.
Realtime è il prodotto consolidato del database Firebase di Google e Cloud Firestore, pur promettendo tecnologie migliori, è ancora nella sua fase di beta test.
Secondo Google :
Il database in tempo reale è il database originale di Firebase. È una soluzione efficiente e a bassa latenza per un'app mobile che richiede la sincronizzazione degli stati tra i client in tempo reale.
Cloud Firestore è il nuovo database di punta di Firebase per lo sviluppo di app mobili . Migliora i successi del database in tempo reale con un nuovo modello di dati più intuitivo. Cloud Firestore offre anche query più complete e veloci e una scalabilità migliore rispetto al database in tempo reale.
Prima di passare alle singole proprietà di Realtime Database e Cloud Firestore, diamo un'occhiata a quali sono i vantaggi e gli svantaggi dell'utilizzo del database Firebase per il tuo prossimo progetto:
Vantaggi del database Firebase:
Se diamo un'occhiata all'elenco dei motivi per cui si dovrebbe utilizzare il database Firebase come database unico per tutto lo sviluppo di app mobili e Web , vedremo perché Firebase db è diventato un così grande successo nel settore dello sviluppo di app mobili.
- Facile migrazione dei dati: i recenti sviluppi hanno fornito agli sviluppatori gli strumenti per migrare facilmente i dati.
- Nessuna conoscenza aggiuntiva richiesta – È richiesta quasi zero conoscenza su devOps o sysadmin per operare in Firebase db.
- Convalida di vari tipi di dati: anche se la struttura del database Firebase è priva di schemi, ha comunque la capacità di base di convalidare vari tipi di dati.
- Strumento unico: è uno strumento onnicomprensivo e l'unico di cui hai necessariamente bisogno per il back-end di una piccola applicazione mobile.
- Più facile da usare – Il livello di difficoltà di utilizzo è leggermente al di sopra della media, ma è più facile rispetto alla maggior parte degli altri sistemi quando si tratta di integrazione con l'analisi e il monitoraggio degli arresti anomali
- Utilizzo gratuito: è gratuito nella fase iniziale, quindi gli sviluppatori che lo stanno provando per la prima volta non devono preoccuparsi di fare un grande investimento iniziale
- Librerie di codice ricche: tutte le librerie di codice nei linguaggi di programmazione sono simili e ben mantenute anche per i nuovi arrivati.
- Struttura dei dati JSON: la struttura dei dati è JSON che si mappa perfettamente con l'interfaccia utente JavaScript.
- Sviluppo veloce – Ottenere un'applicazione creata da zero è molto veloce: autenticazione, e-mail, controllo delle versioni, hosting, monitoraggio, DevOps, uptime.
- Streaming semplice: il funzionamento in tempo reale o gli aggiornamenti in streaming sono molto semplici.
Confrontiamo ora il database Realtime e Cloud Firestore per avere una comprensione più chiara di quando utilizzare quale. Il cloud firestore è ancora nella sua fase di beta test e sembra e funziona in modo più promettente rispetto al database in tempo reale. In questo confronto, vedrai come i due database differiscono l'uno dall'altro e chi vince il database in tempo reale rispetto al cloud firestore.
Modello di dati
- Il database in tempo reale archivia i dati come un unico grande albero JSON che semplifica l'archiviazione di dati semplici, ma i dati complessi o gerarchici sono più difficili da organizzare su larga scala.
- Cloud Firestore archivia invece i dati sotto forma di documenti organizzati in raccolte. In questo, la memorizzazione di dati semplici è simile a JSON e viene archiviata nei documenti. Considerando che i dati complessi o gerarchici non sono più facili da organizzare su larga scala con l'uso di sottoraccolte all'interno dei documenti. E nel complesso richiede una minore denormalizzazione e appiattimento dei dati.
Supporto in tempo reale e offline
- Il database in tempo reale fornisce supporto offline solo per i client mobili Android e iOS.
- Cloud Firestore , d'altra parte, fornisce supporto offline anche per client Android, iOS e web.
Interrogazione
- Il database in tempo reale fornisce query approfondite con funzionalità di ordinamento e filtro limitate in cui gli sviluppatori possono ordinare o filtrare una proprietà in una singola query. E tutte le query sono profonde per impostazione predefinita, ovvero restituiscono sempre l'intero sottoalbero.
- Cloud Firestore indicizza le query con ordinamento e filtraggio composti in cui gli sviluppatori possono filtrare a catena e combinare il filtraggio e l'ordinamento su una proprietà in un'unica query. È anche possibile scrivere query superficiali per sottoraccolte, ovvero gli sviluppatori possono eseguire query all'interno di un documento anziché in un'intera raccolta o in un intero documento. Non solo questo, ma le query sono indicizzate per impostazione predefinita, significa che le prestazioni della query sono proporzionali alla dimensione del set di risultati e non al set di dati.
Transazioni
- Nel database in tempo reale , ci sono operazioni di scrittura e transazione di base. La scrittura dei dati funziona come una singola operazione e le transazioni richiedono un callback di completamento negli SDK nativi.
- Cloud Firestore consente operazioni di scrittura e transazione Atomic. Raggruppa le operazioni e le completa automaticamente. Inoltre, le transazioni si ripetono automaticamente fino al completamento.
Prestazioni e affidabilità
- Il database in tempo reale è un prodotto maturo. Ha la stabilità di un vero prodotto più volte provato e testato. Ha anche una latenza molto bassa, quindi è una buona opzione per frequenti sincronizzazioni di stato. Tuttavia, i database sono limitati alla disponibilità zonale in una singola area.
- Le prestazioni di Cloud Firestore non possono ancora essere misurate perché è ancora nella sua fase beta. E la stabilità nel prodotto beta non è la stessa di un prodotto completamente lanciato. Ma in termini di affidabilità, Cloud Firestore ospita tutti i tuoi dati in più data center in diverse regioni, garantendo scalabilità globale e forte affidabilità. In teoria, ogni volta che Cloud Firestore esce dalla versione beta, avrà un'affidabilità maggiore rispetto al database Realtime.
Scalabilità
- Nel database in tempo reale , il ridimensionamento richiede il partizionamento orizzontale. In parole povere, scala fino a circa 100.000 connessioni simultanee e 1000 scritture al secondo in un singolo database e oltre, richiede la partizionamento orizzontale dei dati su più database.
- Quando Cloud Firestore uscirà dalla versione beta, il ridimensionamento sarà automatico e gli sviluppatori non dovranno dividere i propri dati su più istanze.
Sicurezza
- Il database in tempo reale ha regole a cascata che richiedono una convalida separata. Le regole del database Firebase sono le uniche opzioni di sicurezza qui e gli sviluppatori devono convalidare i dati separatamente utilizzando la regola "validate".
- Cloud Firestore offre una sicurezza più semplice e potente per SDK mobili, Web e server che utilizzano Identity and Access Management (IAM). Anche la convalida dei dati avviene automaticamente. Inoltre, le regole possono limitare le query, ovvero se i risultati di una query possono contenere dati a cui lo sviluppatore non ha accesso, l'intera query non riesce.
Prezzo
- Il database in tempo reale addebita solo la larghezza di banda e l'archiviazione, ma a un prezzo più elevato.
- Cloud Firestore , invece, addebita principalmente le operazioni eseguite nel database (lettura, scrittura, eliminazione) e a una tariffa inferiore, larghezza di banda e spazio di archiviazione. Supporta anche i limiti di spesa giornalieri per i progetti di Google App Engine.
Ti stai ancora chiedendo come funziona Firebase? Riavvolgiamo un riassunto di ciò che abbiamo conosciuto nell'articolo di cui sopra.
Quando utilizzare il database in tempo reale:
- Se i tuoi dati sono semplici e non complessi o gerarchici
- Se è necessario ridimensionare sotto 100.000 connessioni simultanee 1000 scritture/secondo in un unico database
- Quando è necessario un database che addebiti la larghezza di banda e lo spazio di archiviazione complessivi e non le singole operazioni eseguite.
Quando utilizzare il database di Cloud Firestore:
- Se i tuoi dati sono complessi o gerarchici
- Se i tuoi dati scalano oltre 100.000 connessioni simultanee
- Se hai bisogno di un limite di spesa più preciso e di un database che addebita principalmente su 1 sono PicCollage, Fabulous, Shazam e Skyscanner e possiamo tutti essere d'accordo sul fatto che funzionino correttamente.
In conclusione, i modelli Firebase db vanno bene per loro. Realtime firebase funziona con successo ormai da anni e l'anno scorso con il rilascio della versione beta di Cloud Firestore, gli sviluppatori di app mobili e le società di sviluppo di app hanno in serbo cose migliori.