Quando crei un database Firestore, devi scegliere tra due modalità: modalità Native o modalità Datastore. Questa pagina spiega la differenza tra le due modalità.
Scegliere una modalità di database
Quando crei un nuovo database Firestore, devi selezionare una modalità di database. Puoi avere database in modalità Native e Datastore nello stesso progetto, ma ogni database sarà di un unico tipo.
Quando scegli una modalità di database, ti consigliamo di:
Utilizza Firestore in modalità Native per tutte le nuove applicazioni (server, mobile e web).
Firestore in modalità Native utilizza un modello dei dati basato su documenti in linea con gli standard di settore. Oltre a un database scalabile e a elevata coerenza, Firestore in modalità Native fornisce la sincronizzazione dei dati in tempo reale e funzionalità di backend-as-a-service.
Utilizza Firestore in modalità Datastore se la tua app dipende dall'API Datastore.
La modalità Datastore è completamente supportata ed è consigliata per le applicazioni con una dipendenza dall'API Datastore. La modalità nativa e la modalità Datastore condividono un livello di archiviazione sottostante con le stesse funzionalità di disponibilità, coerenza e scalabilità.
Firestore in modalità Native
Firestore è la nuova versione principale di Datastore e un rebranding del prodotto. Prendendo il meglio di Datastore e del Firebase Realtime Database, Firestore è un database di documenti NoSQL creato per offrire scalabilità automatica, prestazioni elevate 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 le nuove funzionalità relative al modello dei dati, agli aggiornamenti in tempo reale e alle librerie client web e mobile non lo 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 le seguenti limitazioni di Datastore:
- Tutte le query Datastore ora sono a elevata coerenza, a meno che tu non richieda esplicitamente la coerenza finale.
- Le query nelle transazioni non devono più essere query antenate.
- 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 disattiva le funzionalità di Firestore non compatibili con Datastore:
- Il progetto accetterà le richieste dell'API Datastore e rifiuterà quelle dell'API Firestore.
- Il progetto utilizzerà gli indici Datastore anziché quelli Firestore.
- Puoi utilizzare le librerie client di Datastore con questo progetto, ma non le librerie client di Firestore.
- Le funzionalità in tempo reale di Firestore non saranno disponibili.
- Nella console Google Cloud , il database utilizzerà il visualizzatore Datastore.
Prezzi e località
I database in modalità Native e Datastore utilizzano la stessa struttura dei prezzi e sono disponibili nelle stesse località. Prezzi e località sono descritti in dettaglio nelle pagine seguenti:
Firestore in modalità Native
Firestore in modalità Datastore
Confronto delle funzioni
La seguente tabella mette a confronto il comportamento del sistema delle modalità del database:
Firestore in modalità Native |
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 | 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 |
Durante l'ascolto di un documento o di un insieme di documenti, i client vengono informati di eventuali modifiche ai dati e viene inviato 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 Datastore:
|
Sicurezza |
|
IAM gestisce l'accesso al database |
Prestazioni | Scala automaticamente a milioni di client simultanei. | Scala automaticamente a milioni di scritture al secondo. |
SLA (accordo sul livello del servizio) | Firestore SLA | Firestore SLA |
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 dei prezzi per le operazioni su entità e documenti. Firestore in modalità Datastore non addebita costi per le operazioni ridotte. Entrambe le modalità utilizzano la stessa struttura dei prezzi per i dati archiviati e la larghezza di banda di rete. Per maggiori dettagli sui prezzi, consulta le seguenti pagine: |
|
Console | Console Firebase e Google Cloud visualizzatore console Firestore | Google Cloud console Datastore Viewer |
Spazi dei nomi | Non supportata | Spazi dei nomi supportati |
Integrazione della libreria client di App Engine | Non supportato nei runtime Python 2.7 e PHP 5.5 dell'ambiente standard di App Engine 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 |
Crea un nuovo database
Puoi creare un nuovo database Firestore in modalità Native o 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.
Passa alla modalità Native:
gcloud
Utilizza il comando gcloud firestore databases update per impostare 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
Modifica il database in modalità Datastore:
gcloud
Utilizza il comando gcloud firestore databases update per impostare la modalità Datastore per il database.
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 database