Firebase offre due soluzioni di database accessibili ai 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 mobili. Si basa sui successi di Realtime Database con un nuovo modello di dati più intuitivo. Cloud Firestore offre anche query più complete e veloci e una scalabilità maggiore rispetto al database in tempo reale.
Il database in tempo reale è il database originale di Firebase. È una soluzione efficiente e a bassa latenza per le app mobili che richiedono la sincronizzazione degli stati tra i client in tempo reale.
Quale database consiglia Firebase?
La scelta della soluzione di database dipenderà da molti fattori, ma quando si tratta di determinate funzionalità, possiamo fornire 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 straordinarie 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 sincronizzando i dati, con query di base. Se non hai bisogno di query, ordinamento e transazioni avanzate, ti consigliamo Realtime Database . Interrogazione avanzata, ordinamento e transazioni. 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 sembra... 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 . 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 frequentemente operazioni batch, consigliamo Cloud Firestore . |
Modello di 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 uptime 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 su 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 prevedi che i tuoi utenti siano costantemente online, ti consigliamo Cloud Firestore o Realtime Database . |
Numero di istanze di database | Nei miei progetti individuali, devo 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 unico database, ti consigliamo Cloud Firestore o Realtime Database . |
Quali sono altre cose importanti da considerare?
Dopo aver riflettuto sulle precedenti considerazioni chiave, potresti essere pronto per scegliere un database . Se stai ancora valutando pro e contro, questa sezione copre altre differenze tra Cloud Firestore e Realtime Database.
Modello di dati
Sia Realtime Database che Cloud Firestore sono database NoSQL.
Database in tempo reale | Cloud Firestore |
---|---|
Archivia 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 dispongono di SDK in tempo reale per dispositivi mobili ed entrambi supportano l'archiviazione dei dati in locale per le app pronte per l'offline.
Database in tempo reale | Cloud Firestore |
---|---|
Supporto offline per client Apple 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 | Cloud Firestore |
---|---|
Presenza supportata. | Non supportato in modo nativo. Puoi sfruttare il supporto di Realtime Database per la presenza sincronizzando Cloud Firestore e Realtime Database utilizzando Cloud Functions. Consulta Creare la presenza in Cloud Firestore . |
Interrogazione
Recupera, ordina e filtra i dati da entrambi i database tramite query.
Database in tempo reale | Cloud Firestore |
---|---|
Query approfondite con funzionalità di ordinamento e filtraggio limitate.
| Query indicizzate con ordinamento e filtraggio composti.
|
Scritture e transazioni
Database in tempo reale | Cloud Firestore |
---|---|
Operazioni di base di scrittura e transazione.
| Operazioni avanzate di scrittura e transazione.
|
Affidabilità e prestazioni
Database in tempo reale | Cloud Firestore |
---|---|
Il database in tempo reale è una soluzione regionale.
| Cloud Firestore è una soluzione regionale e multiregione che si ridimensiona automaticamente.
|
Scalabilità
Database in tempo reale | Cloud Firestore |
---|---|
Il ridimensionamento richiede la partizionamento orizzontale.
| Il ridimensionamento è automatico.
|
Sicurezza
Database in tempo reale | Cloud Firestore |
---|---|
Linguaggio delle regole a cascata che separa l'autorizzazione e la convalida.
| Regole non a cascata che combinano autorizzazione e convalida.
|
Prezzo
Entrambe le soluzioni sono disponibili sui piani tariffari Spark e Blaze .
Database in tempo reale | Cloud Firestore |
---|---|
Addebiti solo per larghezza di banda e spazio di archiviazione , ma a una tariffa più elevata. Ulteriori informazioni sui piani tariffari del database in tempo reale . | Addebiti principalmente sulle operazioni eseguite nel database (lettura, scrittura, eliminazione) e, a una tariffa inferiore, larghezza di banda e spazio di archiviazione. Cloud Firestore supporta i limiti di spesa giornalieri per i progetti App Engine, per assicurarti di non superare i costi con cui ti senti a tuo agio. Ulteriori informazioni sui piani tariffari di Cloud Firestore . |
Utilizzo di Cloud Firestore e database in tempo reale
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?
Si spera che questo confronto ti abbia aiutato a stabilirti su 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 Introduzione alla tua piattaforma: Apple , Android , C++ , Unity , Web o REST .