Quando crei un nuovo database Firestore, puoi configurare l'istanza di database per l'esecuzione in modalità Datastore, rendendo il database compatibile con le versioni precedenti di Datastore. Questa pagina ti aiuta a comprendere la differenza tra le due modalità di database Firestore: modalità nativa e modalità Datastore.
Firestore in modalità nativa
Firestore è la prossima versione principale di Datastore e un re-branding del prodotto. Sfruttando al meglio Datastore e Firebase Realtime Database, Firestore è un database di documenti NoSQL creato per offrire scalabilità automatica, prestazioni elevate e facilità di sviluppo delle applicazioni.
Firestore introduce nuove funzionalità come:
- Un nuovo livello di archiviazione a elevata coerenza
- Un modello di dati a livello di raccolta e documento
- Aggiornamenti in tempo reale
- Librerie client web e per dispositivi mobili
Firestore è compatibile con le versioni precedenti di Datastore, ma il nuovo modello dei dati, gli aggiornamenti in tempo reale e le funzionalità delle librerie client web e per dispositivi mobili non lo sono. Per accedere a tutte le nuove funzionalità di Firestore, devi utilizzare Firestore in modalità nativa.
Firestore in modalità Datastore
Firestore in modalità Datastore utilizza il comportamento del sistema Datastore, ma accede al livello di archiviazione di Firestore, rimuovendo le seguenti limitazioni di Datastore:
- Coerenza finale: le query Datastore diventano estremamente coerenti, a meno che non venga richiesta esplicitamente l'coerenza finale.
- Le query nelle transazioni non sono più necessarie come query dei predecessori.
- Le transazioni non sono più limitate a 25 gruppi di entità.
- Le scritture a un gruppo di entità non sono più limitate a 1 al secondo.
La modalità Datastore disabilita le funzionalità di Firestore che non sono compatibili con Datastore:
- Il progetto accetterà le richieste API Datastore e negherà le richieste API Firestore.
- Il progetto utilizzerà gli indici Datastore anziché gli indici Firestore.
- Con questo progetto puoi utilizzare le librerie client Datastore, ma non le librerie client Firestore.
- Le funzionalità in tempo reale di Firestore non saranno disponibili.
- Nella console Google Cloud, il database utilizza il visualizzatore Datastore.
Upgrade automatico alla modalità Datastore
Per i database Datastore esistenti verrà eseguito automaticamente l'upgrade a Firestore in modalità Datastore. I nuovi progetti che richiedono un database Datastore devono utilizzare Firestore in modalità Datastore.
Prezzi e località
I database in modalità nativa e Datastore utilizzano la stessa struttura di prezzi e sono disponibili nelle stesse località. I prezzi e le località sono descritti in dettaglio nelle seguenti pagine:
Firestore in modalità nativa
Firestore in modalità Datastore
Scelta di una modalità di database
Quando crei un nuovo database Firestore, devi selezionare una modalità di database. Non puoi utilizzare sia la modalità nativa sia la modalità Datastore nello stesso progetto. Quando scegli una modalità di database, consigliamo quanto segue:
Utilizza Firestore in modalità Datastore per i nuovi progetti server.
Firestore in modalità Datastore consente di utilizzare architetture di server Datastore consolidate, rimuovendo le limitazioni fondamentali di Datastore. La modalità Datastore può scalare automaticamente a milioni di scritture al secondo.
Utilizza Firestore in modalità nativa per le nuove app web e per dispositivi mobili.
Firestore offre librerie client per dispositivi mobili e web con funzionalità in tempo reale e offline. La modalità nativa può scalare automaticamente a milioni di client simultanei.
Confronto delle funzionalità
La tabella seguente confronta il comportamento del sistema delle modalità di database:
Firestore in modalità nativa |
Firestore in modalità Datastore |
|
---|---|---|
Modello dei dati | Database di documenti organizzato in documenti e raccolte. | Entità organizzate in tipi e gruppi di entità. |
Livello di archiviazione | Nuovo livello di archiviazione sempre a elevata coerenza | Nuovo livello di archiviazione sempre a elevata coerenza |
Query e transazioni |
|
|
Supporto dell'API Datastore v1 | No, le richieste vengono rifiutate | Sì |
Supporto dell'API Firestore v1 | Sì | No, le richieste vengono rifiutate |
Aggiornamenti in tempo reale |
Mentre ascoltano un documento o un insieme di documenti, i tuoi clienti vengono informati delle modifiche ai dati e inviano il set di dati più recente. |
Non supportata |
Persistenza dei dati offline | Le librerie client per dispositivi mobili e web supportano la persistenza dei dati offline. | Non supportata |
Librerie client |
Librerie client di Firestore:
|
Librerie client Datastore:
|
Sicurezza |
|
IAM gestisce l'accesso ai database |
Prestazioni | Scala automaticamente a milioni di client simultanei. | Scala automaticamente a milioni di scritture al secondo. |
SLA (accordo sul livello del servizio) | SLA di Firestore | SLA di Firestore |
Località |
Entrambe le modalità supportano le stesse posizioni:
|
|
Prezzi |
Entrambe le modalità utilizzano la stessa struttura di prezzi per le operazioni su entità e documenti. Firestore in modalità Datastore non si addebita per le operazioni piccole. Entrambe le modalità utilizzano la stessa struttura di prezzi per i dati archiviati e la larghezza di banda della rete. Per ulteriori dettagli sui prezzi, vedi: |
|
Console | Visualizzatore Firestore console Firebase e Google Cloud Console | Visualizzatore Datastore console Google Cloud |
Spazi dei nomi | Non supportata | Spazi dei nomi supportati |
Integrazione della libreria client di App Engine | Non supportato nell'ambiente standard di App Engine per i runtime Python 2.7 e PHP 5.5 Supportato nell'ambiente standard di App Engine, tutti gli altri runtime Supportato nell'ambiente flessibile di App Engine, tutti i runtime |
Supportato in tutti i runtime |
Passaggio dalla modalità nativa alla modalità Datastore
Se il database è vuoto, puoi passare dalla modalità nativa alla modalità Datastore e viceversa.
Passa alla modalità nativa del database:
gcloud
Utilizza il comando gcloud alpha firestore database update per impostare il database sulla modalità nativa.
gcloud alpha firestore databases update --type=firestore-native
rest
curl --request PATCH \
--header "Authorization: Bearer "$(gcloud auth print-access-token) \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--data '{"type":"FIRESTORE_NATIVE"}' \
"https://firestore.googleapis.com/v1/projects/PROJECT_ID/databases/(default)?updateMask=type"
Passa al database in modalità Datastore:
gcloud
Utilizza il comando gcloud alpha firestore database update per impostare il database sulla modalità Datastore.
gcloud alpha firestore databases update --type=datastore-mode
rest
curl --request PATCH \
--header "Authorization: Bearer "$(gcloud auth print-access-token) \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--data '{"type":"DATASTORE_MODE"}' \
"https://firestore.googleapis.com/v1/projects/PROJECT_ID/databases/(default)?updateMask=type"