Scegli un database: Cloud Firestore o Realtime Database

Firebase offre due database di documenti basati su cloud accessibili dal client. Consigliamo ai nuovi clienti di iniziare con Cloud Firestore:

  • Cloud Firestore è il database di documenti compatibile con JSON consigliato di livello aziendale, considerato affidabile da oltre 250.000 sviluppatori. È adatto per applicazioni con modelli di dati avanzati che richiedono interrogabilità, scalabilità e disponibilità elevata. Offre inoltre sincronizzazione client a bassa latenza e accesso ai dati offline.

  • Realtime Database è il classico database JSON Firebase. È adatto per applicazioni con modelli di dati semplici che richiedono ricerche semplici e sincronizzazione a bassa latenza con scalabilità limitata.

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 vantaggi e svantaggi, questa sezione tratta altre differenze tra Cloud Firestore e Realtime Database.

Modello di dati

Sia Realtime Database che Cloud Firestore sono database NoSQL.

Preferito Cloud Firestore Banca dati in tempo reale
Memorizza i dati come raccolte di documenti.
  • I dati semplici sono facili da archiviare nei documenti, che sono molto simili a JSON.
  • I dati complessi e gerarchici sono più facili da organizzare su larga scala, utilizzando sottoraccolte all'interno dei documenti.
  • Richiede meno denormalizzazione e appiattimento dei dati.

Ulteriori informazioni sul modello di dati Cloud Firestore .

Memorizza i dati come un unico grande albero JSON.
  • I dati semplici sono molto facili da memorizzare.
  • I dati complessi e gerarchici sono più difficili da organizzare su larga scala.

Ulteriori informazioni sul modello dati Realtime Database .

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.

Preferito Cloud Firestore Banca dati in tempo reale
Supporto offline per client Apple, Android e Web. Supporto offline per client Apple e Android.

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.

Preferito Cloud Firestore Banca dati in tempo reale
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 . Presenza supportata.

Interrogando

Recupera, ordina e filtra i dati da entrambi i database tramite query.

Preferito Cloud Firestore Banca dati in tempo reale
Query indicizzate con ordinamento e filtro composti.
  • Puoi concatenare filtri e combinare filtri e ordinamenti su una proprietà in un'unica query.
  • Le query sono superficiali: restituiscono solo documenti in una particolare raccolta o gruppo di raccolte e non restituiscono dati di sottoraccolte.
  • Le query devono sempre restituire documenti interi.
  • Le query sono indicizzate per impostazione predefinita: le prestazioni delle query sono proporzionali alla dimensione del set di risultati, non al set di dati.
Query approfondite con funzionalità di ordinamento e filtro limitate.
  • Le query possono ordinare o filtrare una proprietà, ma non entrambe le cose.
  • Le query sono profonde per impostazione predefinita: restituiscono sempre l'intero sottoalbero.
  • Le query possono accedere ai dati con qualsiasi granularità, fino ai singoli valori dei nodi foglia nell'albero JSON.
  • Le query non richiedono un indice; tuttavia, le prestazioni di alcune query peggiorano man mano che il set di dati cresce.

Scritture e transazioni

Preferito Cloud Firestore Banca dati in tempo reale
Operazioni avanzate di scrittura e transazione.
  • Scrivere operazioni sui dati tramite operazioni di impostazione e aggiornamento, nonché trasformazioni avanzate come operatori numerici e di matrice.
  • Le transazioni possono leggere e scrivere atomicamente dati da qualsiasi parte del database.
Operazioni di scrittura e transazione di base.
  • Scrivere dati attraverso operazioni di impostazione e aggiornamento.
  • Le transazioni sono atomiche su una sottostruttura di dati specifica.

Affidabilità e prestazioni

Preferito Cloud Firestore Banca dati in tempo reale
Cloud Firestore è una soluzione regionale e multiregionale con scalabilità automatica.
  • Una soluzione a bassa latenza, con tempi di risposta tipici non superiori a 30 ms.
  • Ospita i tuoi dati in più data center in regioni distinte, garantendo scalabilità globale e forte affidabilità.
  • Disponibile in configurazioni regionali o multiregionali in tutto il mondo.
Scopri di più sulle prestazioni e sulle caratteristiche di affidabilità di Cloud Firestore nel contratto sul livello di servizio .
Realtime Database è una soluzione regionale.
  • Disponibile in configurazioni regionali. I database sono limitati alla disponibilità zonale all'interno di una regione.
  • Latenza estremamente bassa, con tempi di risposta tipici non superiori a 10 ms. Un'opzione ideale per la sincronizzazione frequente dello stato.
Ulteriori informazioni sulle prestazioni e sulle caratteristiche di affidabilità del Realtime Database sono disponibili nel Contratto sul livello di servizio .

Tempo di attività

Preferito Cloud Firestore Banca dati in tempo reale
Prestazioni di uptime estremamente elevate.
  • Prestazioni tipiche di uptime del 99,999%.
  • Se la disponibilità è della massima importanza, ad esempio nelle app di e-commerce, utilizza Cloud Firestore.
Prestazioni di uptime elevate.
  • Prestazioni tipiche di uptime del 99,95%.

Scalabilità

Preferito Cloud Firestore Banca dati in tempo reale
Il ridimensionamento è automatico.
  • Si ridimensiona in modo completamente automatico. I limiti di scalabilità sono circa 1 milione di connessioni simultanee e 10.000 scritture/secondo. Prevediamo di aumentare questi limiti in futuro.
  • Presenta limiti sulle velocità di scrittura su singoli documenti o indici.
Il ridimensionamento richiede lo sharding.
  • Scala fino a circa 200.000 connessioni simultanee e 1.000 scritture al secondo in un unico database. Per andare oltre è necessario condividere i dati su più database.
  • Nessun limite locale alle velocità di scrittura su singoli dati.

Sicurezza

Preferito Cloud Firestore Banca dati in tempo reale
Regole non a cascata che combinano autorizzazione e convalida.
  • Legge e scrive da SDK per dispositivi mobili protetti dalle regole di sicurezza di Cloud Firestore .
  • Legge e scrive dagli SDK del server protetti da Identity and Access Management (IAM) .
  • Le regole non si sovrappongono a meno che non si utilizzi un carattere jolly.
  • Le regole possono limitare le query: se i risultati di una query potrebbero contenere dati a cui l'utente non ha accesso, l'intera query fallisce.
Linguaggio di regole a cascata che separa l'autorizzazione e la convalida.

Prezzi

Entrambe le soluzioni sono disponibili sui piani tariffari Spark e Blaze .

Preferito Cloud Firestore Banca dati in tempo reale
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 .

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 .

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 delineate in precedenza 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.