Scelta tra la modalità nativa e la modalità Datastore
Quando crei un nuovo database Firestore, puoi configurare l'istanza del database in modo che venga eseguita in modalità Datastore, rendendo il database compatibile con le versioni precedenti di Datastore. Questa pagina ti aiuta a capire la differenza tra le seguenti modalità di database Firestore: modalità Native e modalità Datastore.
Firestore in modalità Native
Firestore è la prossima versione principale di Datastore. un rebranding del prodotto. Sfruttare al meglio Datastore e Firebase Realtime Database, Firestore è un database di documenti NoSQL creato per la scalabilità automatica. elevate prestazioni e facilità di sviluppo delle applicazioni.
Firestore introduce le seguenti funzionalità:
- Un 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 le funzionalità di modello dei dati, aggiornamenti in tempo reale e libreria client web e mobile sono . Per accedere a tutte le funzionalità di Firestore, devi utilizzare Firestore in modalità Native.
Firestore in modalità Datastore
Firestore in modalità Datastore utilizza il comportamento del sistema Datastore, ma accede al livello di archiviazione di Firestore, rimuovendo quanto segue Limitazioni di Datastore:
- Ora tutte le query di Datastore sono fortemente coerenti, a meno che non richieda esplicitamente la coerenza finale.
- Le query nelle transazioni non devono più essere query predecessore.
- 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 compatibile con Datastore:
- Il progetto accetterà le richieste dell'API Datastore e rifiuterà le richieste dell'API Firestore.
- Il progetto utilizzerà gli indici Datastore invece degli indici Firestore.
- Puoi utilizzare le librerie client di Datastore con questo progetto, ma non con le librerie client di Firestore.
- Le funzionalità di Firestore in tempo reale non saranno disponibili.
- Nella console Google Cloud, il database utilizzerà 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 dovrebbero utilizzare Firestore in modalità Datastore.
Prezzi e località
I database in modalità nativa e in modalità Datastore utilizzano la stessa struttura dei prezzi e sono disponibili nelle stesse località. I prezzi e le località sono descritti in i dettagli nelle pagine seguenti:
Firestore in modalità Native
Firestore in modalità Datastore
Scegli una modalità di database
Quando crei un nuovo database Firestore, devi selezionare una modalità di database. All'interno dello stesso progetto puoi avere database sia in modalità Datastore che in modalità Native, ma ogni database sarà di un solo tipo. 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 le architetture dei server Datastore stabilite rimuovendo al contempo i dati fondamentali di Datastore limitazioni. La modalità Datastore può scalare automaticamente fino a milioni di scritture e un numero elevato di operazioni di I/O al secondo.
Utilizza Firestore in modalità Native per le nuove app web e mobile.
Firestore offre librerie client web e per dispositivi mobili con funzionalità le funzionalità offline. La modalità Native può scalare automaticamente client simultanei.
Confronto delle funzioni
La tabella seguente mette a confronto il comportamento del sistema delle modalità di database:
Firestore in modalità Native |
Firestore in modalità Datastore |
|
---|---|---|
Modello di dati | Database di documenti organizzato in documenti e raccolte. | Entità organizzate in tipi e gruppi di entità. |
Livello di archiviazione | Un livello di archiviazione a elevata coerenza. | Un livello di archiviazione 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 ricevono una notifica modifiche ai dati e inviare il set di dati più recente. |
Non supportata |
Persistenza dei dati offline | Le librerie client web e per dispositivi mobili supportano la persistenza dei dati offline. | Non supportata |
Librerie client |
Librerie client di Firestore:
|
Librerie client di Datastore:
|
Sicurezza |
|
IAM gestisce l'accesso ai database |
Prestazioni | Scala automaticamente fino a milioni di client simultanei. | Scala automaticamente fino a milioni di scritture al secondo. |
SLA (accordo sul livello del servizio) | SLA (accordo sul livello del servizio) di Firestore | SLA (accordo sul livello del servizio) di Firestore |
Località |
Entrambe le modalità supportano le stesse posizioni. Per un elenco dettagliato delle località, consulta le seguenti pagine: |
|
Prezzi |
Entrambe le modalità utilizzano la stessa struttura di determinazione dei prezzi per le operazioni relative a entità e documenti. Firestore in modalità Datastore non addebita costi per le operazioni ridotte. Entrambe le modalità utilizzano la stessa struttura di prezzi per i dati archiviati e la larghezza di banda di rete. Per ulteriori dettagli sui prezzi, consulta le seguenti pagine: |
|
Console | Visualizzatore Firestore della console Firebase e Google Cloud | Visualizzatore Datastore della 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 Supportata nell'ambiente standard di App Engine. tutti gli altri runtime Supportata nell'ambiente flessibile di App Engine, tutti i runtime |
Supportato in tutti i runtime |
Crea un nuovo database
Puoi creare un nuovo database Firestore in modalità nativa o in modalità Datastore. Questa scelta non dipende dalle modalità di eventuali database esistenti nel progetto.
Per saperne di più, consulta Creare e gestire i database.Passare dalla modalità Native alla modalità Datastore e viceversa
Se il database è vuoto, puoi passare dalla modalità Native alla modalità Datastore e viceversa.
Imposta il database in modalità Native:
gcloud
Usa il comando gcloud firestore logs update per cambiare il database in modalità Native.
gcloud firestore databases update --type=firestore-native --database='DATABASE_ID'
Sostituisci DATABASE_ID con l'ID del tuo database.
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/DATABASE_ID?updateMask=type"
Sostituisci quanto segue:
- PROJECT_ID: l'ID progetto
- DATABASE_ID: l'ID database
Passa al database in modalità Datastore:
gcloud
Utilizza il comando gcloud firestore logs update per cambiare il database in modalità Datastore.
gcloud firestore databases update --type=datastore-mode --database='DATABASE_ID'
Sostituisci DATABASE_ID con l'ID del tuo database.
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/DATABASE_ID?updateMask=type"
Sostituisci quanto segue:
- PROJECT_ID: l'ID progetto
- DATABASE_ID: l'ID del database