Firebase offre due soluzioni di database basate su cloud accessibili dal client 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 del Realtime Database con un nuovo modello di dati più intuitivo. Cloud Firestore offre inoltre query più ricche e veloci e offre una maggiore scalabilità rispetto al Realtime Database.
Realtime Database è il database originale di Firebase. Si tratta di 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 scelta della soluzione di database dipenderà da molti fattori, ma quando si tratta di determinate funzionalità, possiamo consigliarti quale database è adatto a te.
Entrambe le soluzioni offrono:
- SDK client-first, senza server da distribuire e gestire
- Aggiornamenti in tempo reale
- Livello gratuito, quindi paga in base all'utilizzo
Considerazioni chiave
Oltre alle ottime funzionalità principali comuni a entrambi i database, pensa a come alcune o tutte le considerazioni elencate di seguito influenzeranno il successo delle tue app.
Ruolo della banca dati | La mia app utilizza un database per... Principalmente sincronizzazione dei dati, con query di base. Se non hai bisogno di query, ordinamenti e transazioni avanzati, ti consigliamo Realtime Database . Interrogazioni avanzate, 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 è simile a... Pochi GB o meno di dati che cambiano frequentemente. Se la tua app invierà un flusso di piccoli aggiornamenti, come in un'app per 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 spesso necessarie operazioni batch, consigliamo Cloud Firestore . |
Modello di dati | Preferisco strutturare i miei dati come... Un semplice albero JSON. Per i dati non strutturati JSON, consigliamo Realtime Database . Documenti organizzati in raccolte. Per documenti e raccolte strutturate, consigliamo Cloud Firestore . |
Disponibilità | Le mie esigenze di disponibilità sono... Garanzia di uptime estremamente elevata pari al 99,999%. Se la disponibilità è della massima importanza, ad esempio nelle app di e-commerce, 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... Spesso. 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 . |
Quali sono altre cose importanti da considerare?
Dopo aver riflettuto sulle considerazioni chiave precedenti, 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.
Banca dati in tempo reale | Cloud Fire Store |
---|---|
Memorizza i dati come un unico grande albero JSON.
Ulteriori informazioni sul modello dati Realtime Database . | Memorizza i dati come raccolte di documenti.
Ulteriori informazioni sul modello di dati Cloud Firestore . |
Supporto in tempo reale e offline
Entrambi dispongono di SDK in tempo reale mobile-first ed entrambi supportano l'archiviazione di dati locali per app pronte per offline.
Banca dati in tempo reale | Cloud Fire Store |
---|---|
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.
Banca dati in tempo reale | Cloud Fire Store |
---|---|
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 . |
Interrogando
Recupera, ordina e filtra i dati da entrambi i database tramite query.
Banca dati in tempo reale | Cloud Fire Store |
---|---|
Query approfondite con funzionalità di ordinamento e filtro limitate.
| Query indicizzate con ordinamento e filtro composti.
|
Scritture e transazioni
Banca dati in tempo reale | Cloud Fire Store |
---|---|
Operazioni di scrittura e transazione di base.
| Operazioni avanzate di scrittura e transazione.
|
Affidabilità e prestazioni
Banca dati in tempo reale | Cloud Fire Store |
---|---|
Realtime Database è una soluzione regionale.
| Cloud Firestore è una soluzione regionale e multiregionale con scalabilità automatica.
|
Scalabilità
Banca dati in tempo reale | Cloud Fire Store |
---|---|
Il ridimensionamento richiede lo sharding.
| Il ridimensionamento è automatico.
|
Sicurezza
Banca dati in tempo reale | Cloud Fire Store |
---|---|
Linguaggio di 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 sui piani tariffari Spark e Blaze .
Banca dati in tempo reale | Cloud Fire Store |
---|---|
Addebita solo la larghezza di banda e lo spazio di archiviazione , ma a una tariffa più elevata. Ulteriori informazioni sui piani tariffari di Realtime Database . | Addebita principalmente le operazioni eseguite nel database (lettura, scrittura, eliminazione) e, a una tariffa inferiore, larghezza di banda e spazio di archiviazione. Cloud Firestore supporta limiti di spesa giornalieri per i progetti App Engine, per assicurarti di non superare i costi che ti senti 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 sopra descritte 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 Iniziare con Cloud Firestore .
- Per Realtime Database , leggi l'argomento Inizia per la tua piattaforma: Apple , Android , C++ , Unity , Web o REST .