Firebase offre due soluzioni di database accessibili dal client basate su cloud che supportano la sincronizzazione dei dati in tempo reale:
Cloud Firestore è il database più recente di Firebase per lo sviluppo di app per dispositivi mobili. Si basa sui successi del database in tempo reale con un nuovo modello di dati più intuitivo. Cloud Firestore offre anche query più ricche e veloci e scalabilità maggiori rispetto al database in tempo reale.
Realtime Database è il database originale di Firebase. È una soluzione efficiente e a bassa latenza per le app mobili che richiedono stati sincronizzati tra i client in tempo reale.
Quale database consiglia Firebase?
La tua scelta della soluzione di database dipenderà da molti fattori, ma quando si tratta di determinate funzionalità, possiamo darti consigli su quale database è giusto per te.
Entrambe le soluzioni offrono:
- SDK client-first, senza server da distribuire e mantenere
- Aggiornamenti in tempo reale
- Livello gratuito, quindi paga per quello che usi
Considerazioni chiave
Oltre alle fantastiche funzionalità di base comuni a entrambi i database, pensa a come una o tutte le considerazioni elencate di seguito influiranno sul successo delle tue app.
Ruolo della banca dati | La mia app utilizza un database per... Principalmente la sincronizzazione dei dati, con query di base. Se non hai bisogno di query, ordinamenti e transazioni avanzate, ti consigliamo Realtime Database . Interrogazione, ordinamento e transazioni avanzate. Se hai bisogno di interazioni complesse con i tuoi dati, ad esempio nelle app di e-commerce, ti consigliamo Cloud Firestore . |
Operazioni sui dati | L'utilizzo del database della mia app è simile a... Pochi GB o meno di dati che cambiano frequentemente. Se la tua app invierà un flusso di piccoli aggiornamenti, ad esempio in un'app di lavagna digitale, ti consigliamo Realtime Database . Da centinaia di GB a TB di dati che vengono letti molto più spesso di quanto non vengano modificati. Per set di dati molto grandi e quando sono necessarie operazioni in batch, consigliamo Cloud Firestore . |
Modello dati | Preferisco strutturare i miei dati come... Un semplice albero JSON. Per i dati JSON non strutturati, consigliamo Realtime Database . Documenti organizzati in raccolte. Per documenti strutturati e raccolte, consigliamo Cloud Firestore . |
Disponibilità | Le mie esigenze di disponibilità sono... Garanzia di operatività estremamente elevata del 99,999%. Se la disponibilità è della massima importanza, ad esempio nelle app di e-commerce, ti consigliamo Cloud Firestore . Una garanzia di almeno il 99,95% di uptime. Quando è accettabile una disponibilità molto elevata ma non critica, consigliamo Cloud Firestore o Realtime Database . |
Query offline sui dati locali | La mia app dovrà eseguire query su dispositivi con connettività limitata o assente... Frequentemente. Per funzionalità di query sofisticate sui dati locali quando l'utente è offline, consigliamo Cloud Firestore . Raramente o mai. Se ti aspetti che i tuoi utenti siano costantemente online, ti consigliamo Cloud Firestore o Realtime Database . |
Numero di istanze del database | Nei miei progetti individuali, ho bisogno di usare... Molti database, ad esempio un database per ogni cliente principale. Poiché ti consente di aggiungere più database a un singolo progetto Firebase, ti consigliamo Realtime Database . Solo un unico database. Se hai bisogno di un singolo database, ti consigliamo Cloud Firestore o Realtime Database . |
Quali sono alcune altre cose importanti da considerare?
Dopo aver riflettuto sulle precedenti considerazioni chiave, potresti essere pronto per scegliere un database . Se stai ancora valutando i pro e i contro, questa sezione illustra altre differenze tra Cloud Firestore e Realtime Database.
Modello dati
Sia Realtime Database che Cloud Firestore sono database NoSQL.
Database in tempo reale | CloudFirestore |
---|---|
Memorizza i dati come un grande albero JSON.
Ulteriori informazioni sul modello di dati del database in tempo reale . | Memorizza i dati come raccolte di documenti.
Ulteriori informazioni sul modello di dati di Cloud Firestore . |
Supporto in tempo reale e offline
Entrambi hanno SDK mobile-first in tempo reale ed entrambi supportano l'archiviazione locale dei dati per le app pronte per l'offline.
Database in tempo reale | CloudFirestore |
---|---|
Supporto offline per client Apple e Android. | Supporto offline per client Apple, Android e web. |
Presenza
Può essere utile sapere quando un cliente è online o offline. Firebase Realtime Database può registrare lo stato della connessione del client e fornire aggiornamenti ogni volta che lo stato della connessione del client cambia.
Database in tempo reale | CloudFirestore |
---|---|
Presenza supportata. | Non supportato in modo nativo. Puoi sfruttare il supporto per la presenza di Realtime Database sincronizzando Cloud Firestore e Realtime Database utilizzando Cloud Functions. Consulta Sviluppare la presenza in Cloud Firestore . |
Interrogazione
Recupera, ordina e filtra i dati da entrambi i database tramite query.
Database in tempo reale | CloudFirestore |
---|---|
Query approfondite con funzionalità limitate di ordinamento e filtraggio .
| Query indicizzate con ordinamento e filtri composti.
|
Scritture e transazioni
Database in tempo reale | CloudFirestore |
---|---|
Operazioni di scrittura e transazione di base.
| Operazioni avanzate di scrittura e transazione.
|
Affidabilità e prestazioni
Database in tempo reale | CloudFirestore |
---|---|
Realtime Database è una soluzione regionale.
| Cloud Firestore è una soluzione regionale e multiregionale che scala automaticamente.
|
Scalabilità
Database in tempo reale | CloudFirestore |
---|---|
Il ridimensionamento richiede lo sharding.
| Il ridimensionamento è automatico.
|
Sicurezza
Database in tempo reale | CloudFirestore |
---|---|
Linguaggio delle regole a cascata che separa l'autorizzazione e la convalida.
| Regole non a cascata che combinano autorizzazione e convalida.
|
Prezzi
Entrambe le soluzioni sono disponibili nei piani tariffari Spark e Blaze .
Database in tempo reale | CloudFirestore |
---|---|
Addebiti solo per larghezza di banda e spazio di archiviazione , ma a una tariffa più elevata. Ulteriori informazioni sui piani tariffari di Realtime Database . | Addebiti principalmente sulle operazioni eseguite nel database (lettura, scrittura, eliminazione) e, a un tasso inferiore, larghezza di banda e archiviazione. Cloud Firestore supporta i limiti di spesa giornalieri per i progetti App Engine, per assicurarti di non superare i costi con cui sei a tuo agio. Ulteriori informazioni sui piani tariffari di Cloud Firestore . |
Utilizzo di Cloud Firestore e Realtime Database
Puoi utilizzare entrambi i database all'interno della stessa app o progetto Firebase. Entrambi i database NoSQL possono archiviare gli stessi tipi di dati e le librerie client funzionano in modo simile. Tieni presente le differenze descritte sopra se decidi di utilizzare entrambi i database nella tua app .
Scopri di più sulle funzionalità disponibili sia in Realtime Database che in Cloud Firestore .
Pronto a scegliere un database?
Speriamo che questo confronto ti abbia aiutato a scegliere una soluzione di database Firebase. Ora puoi imparare come aggiungere un database ai tuoi progetti Firebase.
- Per Cloud Firestore , dai un'occhiata a Introduzione a Cloud Firestore .
- Per Realtime Database , leggi l'argomento Inizia per la tua piattaforma: Apple , Android , C++ , Unity , Web o REST .