Google si impegna a promuovere l'equità razziale per le comunità nere. Vedi come.
Questa pagina è stata tradotta dall'API Cloud Translation.
Switch to English

Scegli un database: Cloud Firestore o Realtime Database

Firebase offre due soluzioni di database accessibili al 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 del database in tempo reale con un nuovo modello di dati più intuitivo. Cloud Firestore offre inoltre query e scale più ricche e veloci rispetto al database in tempo reale.

  • Realtime Database è il database originale di Firebase. È una soluzione efficiente 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 alcune funzionalità, possiamo formulare raccomandazioni su quale database è giusto per te.

Entrambe le soluzioni offrono:

  • SDK client-first, senza server da distribuire e gestire
  • Aggiornamenti in tempo reale
  • Livello gratuito, quindi paga per quello che usi

Considerazioni chiave

Al di là delle grandi funzionalità di base comuni a entrambi i database, pensa a come una o tutte le considerazioni elencate di seguito influenzeranno il successo delle tue app.

Ruolo del database
La mia app utilizza un database per ...
Sincronizzazione dei dati principalmente, con query di base.
Se non hai bisogno di query, ordinamento 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 sembra ...
Alcuni GB o meno di dati che cambiano frequentemente.
Se la tua app invierà un flusso di piccoli aggiornamenti, ad esempio in un'app per lavagna digitale, ti consigliamo Realtime Database .
Centinaia di GB a TB di dati letti molto più spesso di quanto non vengano modificati.
Per set di dati molto grandi e quando sono spesso necessarie operazioni batch, si consiglia Cloud Firestore .
Modello di dati
Preferisco strutturare i miei dati come ...
Un semplice albero JSON.
Per i dati non strutturati JSON, si consiglia 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, 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 sui dispositivi con connettività limitata o assente ...
Frequentemente.
Per sofisticate funzionalità di query sui dati locali quando l'utente è offline, si consiglia 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, devo usare ...
Molti database, ad esempio un database per ciascun cliente principale.
Poiché consente di aggiungere più database a un singolo progetto Firebase, si consiglia Realtime Database .
Solo un singolo 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 considerato le considerazioni chiave precedenti, potresti essere pronto a scegliere un database . Se stai ancora valutando i pro e i 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
Memorizza i dati come un unico grande albero JSON.
  • I dati semplici sono molto facili da memorizzare.
  • Dati gerarchici complessi sono più difficili da organizzare su larga scala.

Ulteriori informazioni sul modello di dati del database in tempo reale .

Memorizza i dati come raccolte di documenti.
  • I dati semplici sono facili da archiviare nei documenti, molto simili a JSON.
  • I dati complessi e gerarchici sono più facili da organizzare su larga scala, utilizzando le raccolte secondarie all'interno dei documenti.
  • Richiede meno denormalizzazione e appiattimento dei dati.

Ulteriori informazioni sul modello di dati Cloud Firestore .

Supporto in tempo reale e offline

Entrambi dispongono di SDK in tempo reale per dispositivi mobili e supportano entrambi l'archiviazione dei dati locali per le app offline.

Database in tempo reale Cloud Firestore
Supporto offline per client iOS e Android. Supporto offline per client iOS, Android e Web.

Presenza

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

Database in tempo reale Cloud Firestore
Presenza supportata. Non supportato in modo nativo. È possibile sfruttare il supporto di Realtime Database per la presenza sincronizzando Cloud Firestore e Realtime Database utilizzando le funzioni Cloud. Vedi Crea 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 filtro limitate.
  • Le query possono ordinare o filtrare su una proprietà, ma non entrambe.
  • Le query sono profonde per impostazione predefinita: restituiscono sempre l'intera sottostruttura.
  • Le query possono accedere ai dati in qualsiasi granularità, fino ai singoli valori del nodo foglia nella struttura JSON.
  • Le query non richiedono un indice; tuttavia, le prestazioni di determinate query diminuiscono con l'aumentare del set di dati.
Query indicizzate con ordinamento e filtro composti.
  • È possibile concatenare i filtri e combinare i filtri e l'ordinamento su una proprietà in una singola query.
  • Le query sono superficiali: restituiscono solo documenti in un particolare gruppo di raccolta o raccolta e non restituiscono dati di sottocollection.
  • Le query devono sempre restituire documenti interi.
  • Le query sono indicizzate per impostazione predefinita: le prestazioni della query sono proporzionali alla dimensione del set di risultati, non al set di dati.

Scrive e transazioni

Database in tempo reale Cloud Firestore
Operazioni di scrittura e transazione di base.
  • Scrivi i dati attraverso le operazioni di impostazione e aggiornamento.
  • Le transazioni sono atomiche su una sottostruttura dati specifica.
Operazioni avanzate di scrittura e transazione.

Affidabilità e prestazioni

Database in tempo reale Cloud Firestore
Realtime Database è una soluzione a singola regione.
  • I database sono limitati alla disponibilità zonale in una singola regione.
  • Latenza estremamente bassa, opzione ideale per frequenti sincronizzazioni di stato.
Maggiori informazioni sulle prestazioni e l'affidabilità del database in tempo reale nel Contratto sul livello di servizio .
Cloud Firestore è una soluzione multi-regione che si ridimensiona automaticamente.
  • Ospita i tuoi dati su più data center in regioni distinte, garantendo la scalabilità globale e una forte affidabilità.
  • Disponibile in configurazioni regionali o multi-regionali in tutto il mondo.
Maggiori informazioni sulle prestazioni e le caratteristiche di affidabilità di Cloud Firestore nell'Accordo sul livello di servizio .

scalabilità

Database in tempo reale Cloud Firestore
Il ridimensionamento richiede lo sharding.
  • Ridimensiona a circa 200.000 connessioni simultanee e 1.000 scritture / secondo in un unico database. Oltre a ciò, è necessario suddividere i dati in più database.
  • Nessun limite locale sulla velocità di scrittura per singoli pezzi di dati.
Il ridimensionamento è automatico.
  • Scala completamente automaticamente. Attualmente, i limiti di ridimensionamento sono circa 1 milione di connessioni simultanee e 10.000 scritture / secondo. Abbiamo in programma di aumentare questi limiti in futuro.
  • Ha limiti di velocità di scrittura per singoli documenti o indici.

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.
  • 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 se non si utilizza 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 ha esito negativo.

Prezzi

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

Database in tempo reale Cloud Firestore
Addebita solo per larghezza di banda e archiviazione , ma a un tasso più elevato.

Ulteriori informazioni sui piani tariffari del database in tempo reale .

Addebiti principalmente per le operazioni eseguite nel database (lettura, scrittura, eliminazione) e, a una velocità inferiore, larghezza di banda e archiviazione.

Cloud Firestore supporta i limiti di spesa giornaliera per i progetti di Google App Engine, per assicurarti di non superare i costi 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 .

Ulteriori informazioni sulle funzionalità disponibili in Realtime Database e Cloud Firestore .

Pronto a scegliere un database?

Speriamo che questo confronto ti abbia aiutato ad accontentarti di una soluzione di database Firebase. Ora puoi imparare come aggiungere un database ai tuoi progetti Firebase.