Scegli un database: Cloud Firestore o Realtime Database

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

  • Cloud Firestore è il database di documenti compatibile con JSON di livello enterprise consigliato, utilizzato da oltre 250.000 sviluppatori. È adatto a di applicazioni con modelli di dati avanzati che richiedono querybilità, scalabilità e l'alta disponibilità. Offre inoltre la sincronizzazione dei client a bassa latenza e le modalità offline l'accesso ai dati.

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

Quali sono altri aspetti importanti da tenere in considerazione?

Dopo aver pensato alle considerazioni chiave precedenti, potresti essere pronto a scegli un database. Se stai ancora valutando i vantaggi e gli svantaggi, questa sezione illustra altre differenze tra Cloud Firestore e Realtime Database.

Modello dei dati

Sia Realtime Database che Cloud Firestore sono database NoSQL.

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

Scopri di più sulle Modello dei dati Cloud Firestore.

Archivia i dati come un unico albero JSON di grandi dimensioni.
  • I dati semplici sono molto facili da archiviare.
  • I dati complessi e gerarchici sono più difficili da organizzare su larga scala.

Scopri di più sul modello di dati Realtime Database.

Assistenza offline e in tempo reale

Entrambe le versioni dispongono di SDK in tempo reale mobile-first ed entrambe supportano l'archiviazione locale dei dati per compatibili con le app offline.

Cloud Firestore Preferito Realtime Database
Supporto offline per Apple, Android e client web. Supporto offline per i client Apple e Android.

Presence

Può essere utile sapere quando un cliente è online oppure offline. Firebase Realtime Database può registrare lo stato di connessione del client e fornire aggiornamenti ogni volta che cambia lo stato della connessione del client.

Cloud Firestore Preferiti Realtime Database
Funzionalità non supportata in modo nativo. Puoi basarti sulla tecnologia di Realtime Database il supporto per la presenza sincronizzando Cloud Firestore e Realtime Database tramite Cloud Functions Consulta Crea in Cloud Firestore. Presenza supportata.

Esecuzione di query

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

Cloud Firestore Preferito Realtime Database
Query indicizzate con ordinamento e filtri combinati.
  • Puoi concatenare i filtri e combinare il filtro e l'ordinamento in una proprietà in una singola query.
  • Le query sono superficiali: restituiscono i documenti solo di una determinata raccolta o un gruppo di raccolte e non restituiscono dati di sottoraccolte.
  • Le query devono sempre restituire documenti interi.
  • Le query vengono indicizzate per impostazione predefinita: le prestazioni delle query sono proporzionali al la dimensione del set di risultati, non del set di dati.
Query profonde con query funzionalità di ordinamento e filtro.
  • Le query possono ordinare o filtrare in base a una proprietà, ma non entrambe.
  • Per impostazione predefinita, le query sono profonde: restituiscono sempre l'intero sottoalbero.
  • Le query possono accedere ai dati a qualsiasi granularità, fino ai singoli valori dei nodi foglia nella struttura ad albero JSON.
  • Le query non richiedono un indice; tuttavia il rendimento di determinate query si degrada man mano che il set di dati cresce.

Operazioni di scrittura e transazioni

Cloud Firestore Preferiti Realtime Database
Operazioni avanzate di scrittura e transazione.
  • Operazioni di scrittura dei dati tramite operazioni di impostazione e aggiornamento, nonché trasformazioni avanzate come operatori numerici e array.
  • Transazioni può leggere e scrivere a livello atomico i dati da qualsiasi parte del database.
Operazioni di scrittura e transazione di base.
  • Scrivi dati tramite operazioni di set e aggiornamento.
  • Le transazioni sono atomiche in un sottoalbero di dati specifico.

Affidabilità e prestazioni

Cloud Firestore Preferito Realtime Database
Cloud Firestore è una soluzione a livello di una o più regioni che scala automaticamente.
  • Una soluzione a bassa latenza, con tempi di risposta tipici non superiori a 30 ms.
  • Memorizza i tuoi dati in più data center in regioni distinte, garantendo scalabilità globale e affidabilità elevata.
  • Disponibile in configurazioni a livello di una o più regioni in tutto il mondo.
Scopri di più sulle Cloud Firestore caratteristiche di rendimento e affidabilità nell'Accordo sul livello del servizio.
Realtime Database è una soluzione regionale.
  • Disponibile nelle configurazioni regionali. I database sono limitati a livello di zona la disponibilità all'interno di una regione.
  • Latenza estremamente bassa, con tempi di risposta tipici non superiori a 10 ms. Un è l'opzione ideale per sincronizzazioni di stato frequenti.
di Gemini Advanced. Scopri di più sulle caratteristiche di prestazioni e affidabilità di Realtime Database nell'Accordo sul livello del servizio.

Tempo di attività

Cloud Firestore Preferito Realtime Database
Prestazioni di uptime estremamente elevate.
  • Prestazioni di uptime tipiche del 99,999%.
  • Se la disponibilità è della massima importanza, ad esempio nelle app di e-commerce, usa Cloud Firestore.
Prestazioni di uptime elevato.
  • Prestazioni di uptime tipiche del 99,95%.

Scalabilità

Cloud Firestore Preferito Realtime Database
La scalabilità è automatica.
  • Scalabilità completamente automatica. I limiti di scalabilità sono intorno 1 milione di connessioni simultanee e 10.000 scritture al secondo. Prevediamo di aumentare questi limiti in futuro.
  • Presenta limiti alle velocità di scrittura su singoli documenti o indici.
La scalabilità richiede lo sharding.
  • Scala fino a circa 200.000 connessioni simultanee e 1000 scritture al secondo in un unico database. La scalabilità richiede lo sharding dei dati per creare e gestire più database.
  • Nessun limite locale sulle velocità di scrittura su singoli dati.

Sicurezza

Cloud Firestore Preferiti Realtime Database
Regole non a cascata che combinano autorizzazione e convalida.
  • Letture e scritture da SDK mobile protetti da Cloud Firestore Security Rules.
  • Legge e scrive dagli SDK del server protetti da Identity and Access Management (IAM).
  • Le regole non vengono applicate a cascata a meno che non utilizzi un carattere jolly.
  • Le regole possono limitare le query: se i risultati di una query potrebbero contenere dati l'utente non ha accesso, l'intera query ha esito negativo.
Linguaggio a cascata che separa autorizzazione e convalida.

Prezzi

Entrambe le soluzioni sono disponibili nei prezzi dei piani Spark e Blaze.

Cloud Firestore Preferiti Realtime Database
Addebita principalmente le operazioni eseguite nel database (lettura, scrittura, eliminazione) e, a una velocità inferiore, larghezza di banda e spazio di archiviazione.

Supportate da Cloud Firestore ogni giorno limiti di spesa progetti App Engine, per assicurarti di non superare i costi con cui si sente a proprio agio.

Scopri di più su Piani tariffari di Cloud Firestore.

Addebita solo la larghezza di banda e lo spazio di archiviazione, ma a una tariffa superiore di conversione.

Scopri di più sui piani tariffari di Realtime Database.

In uso: Cloud Firestore e Realtime Database

Puoi utilizzare entrambi i database all'interno della stessa app o dello stesso progetto Firebase. Sia NoSQL possono archiviare gli stessi tipi di dati e le librerie client funzionano in un in modo simile. Tieni presente le differenze descritte in precedenza se decidi per utilizzare entrambi i database nella tua app.

Scopri di più sulle funzionalità disponibili in entrambe le Realtime Database e Cloud Firestore.

Vuoi scegliere un database?

Ci auguriamo che questo confronto ti abbia aiutato a scegliere una soluzione di database Firebase. Ora puoi imparare ad aggiungere un database ai progetti Firebase.