Pertinente solo per la versione Enterprise di Cloud Firestore. |
Questa pagina descrive come creare, aggiornare ed eliminare i database Cloud Firestore con compatibilità MongoDB. Puoi creare più database Cloud Firestore per progetto. Puoi utilizzare più database per configurare ambienti di produzione e test, per isolare i dati dei clienti e per la regionalizzazione dei dati.
Utilizzo del livello gratuito
Cloud Firestore offre un livello senza costi che ti consente di iniziare senza alcun costo.
Il livello senza costi si applica a un solo database Cloud Firestore per progetto. Il primo database creato in un progetto senza un database di livello senza costi riceverà il livello senza costi. Se il database a cui è stato applicato il livello senza costi viene eliminato, il database successivo creato riceverà il livello senza costi.
Prima di iniziare
Prima di creare un database, devi completare le seguenti operazioni:
-
Se non l'hai ancora fatto, crea un progetto Firebase: nella console Firebase, fai clic su Aggiungi progetto, poi segui le istruzioni sullo schermo per creare un progetto Firebase o per aggiungere i servizi Firebase a un progetto Google Cloud esistente.
- Assegna i ruoli Identity and Access Management appropriati come descritto nella sezione successiva.
Ruoli obbligatori
Per creare e gestire i database, devi disporre del ruolo Identity and Access Management Owner
o Datastore Owner
. Questi ruoli concedono le autorizzazioni richieste.
Autorizzazioni obbligatorie
Per gestire i database, devi disporre delle seguenti autorizzazioni:
- Creare un database:
datastore.databases.create
- Leggi la configurazione del database:
datastore.databases.getMetadata
- Configura un database:
datastore.databases.update
- Elimina un database:
datastore.databases.delete
- Clonare un database:
datastore.databases.clone
Crea un database
Per creare un database Cloud Firestore con compatibilità MongoDB, utilizza uno dei seguenti metodi:
Console Firebase
-
Nella console Firebase, vai alla pagina Database Firestore.
- Fai clic su Crea database.
- Seleziona versione Enterprise. Fai clic su Avanti.
- Inserisci un ID database.
- Seleziona una posizione per il database.
- Configura il database in cui selezioni una modalità.
- Fai clic su Crea.
Interfaccia a riga di comando di Firebase
firebase firestore:databases:create --edition EDITION DATABASE_ID \ --location=LOCATION
Interfaccia a riga di comando gcloud
Utilizza il
comando gcloud firestore databases create
e imposta --edition=enterprise
.
gcloud firestore databases create \ --database=DATABASE_ID \ --location=LOCATION \ --edition=enterprise
Sostituisci quanto segue:
- DATABASE_ID: un ID database valido.
- LOCATION: il nome di una regione o multiregione Cloud Firestore con compatibilità MongoDB.
Per abilitare la protezione da eliminazione, aggiungi il flag --delete-protection
.
Non puoi eliminare un database con la protezione da eliminazione abilitata finché non
disattivi questa impostazione. Questa impostazione è disattivata per impostazione predefinita.
gcloud firestore databases create \ --database=DATABASE_ID \ --location=LOCATION \ --edition=enterprise \ --delete-protection
Per aggiungere tag
al database, utilizza il flag
--tags
. Ad esempio:
--tags=123/environment=production,123/costCenter=marketing
--tags=tagKeys/333=tagValues/444
Terraform
Utilizza la risorsa google_firestore_database
e imposta database_edition
su ENTERPRISE
.
resource "google_firestore_database" "database" { name = "DATABASE_ID" location_id = "LOCATION" type = "FIRESTORE_NATIVE" database_edition = "ENTERPRISE" // Optional delete_protection_state = "DELETE_PROTECTION_STATE" }
Sostituisci quanto segue:
- DATABASE_ID: un ID database valido.
- LOCATION: il nome di una regione o multiregione Cloud Firestore con compatibilità MongoDB.
- DELETE_PROTECTION_ENABLEMENT:
DELETE_PROTECTION_ENABLED
oDELETE_PROTECTION_DISABLED
.
Per abilitare la protezione da eliminazione, imposta delete_protection_state
su DELETE_PROTECTION_ENABLED
.
Non puoi eliminare un database con la protezione da eliminazione abilitata
finché non disattivi questa impostazione. Questa impostazione è disattivata per impostazione predefinita.
ID database
Gli ID database validi includono gli ID conformi a quanto segue:
- Include solo lettere, numeri e trattini (
-
). - Le lettere devono essere minuscole.
- Il primo carattere deve essere una lettera.
- L'ultimo carattere deve essere una lettera o un numero.
- Minimo 4 caratteri.
- Massimo 63 caratteri.
- Non deve essere un UUID o assomigliare a un UUID. Ad esempio, non utilizzare un ID come
f47ac10b-58cc-0372-8567-0e02b2c3d479
.
Se elimini un database, non puoi riutilizzare immediatamente l'ID database finché non sono trascorsi 5 minuti.
Elimina protezione
Utilizza la protezione dall'eliminazione per impedire l'eliminazione accidentale di un database. La protezione dall'eliminazione funziona nel seguente modo:
- Non puoi eliminare un database con la protezione da eliminazione abilitata finché non la disabiliti.
- La protezione da eliminazione è disattivata per impostazione predefinita.
- Puoi abilitare la protezione dall'eliminazione quando crei il database oppure puoi aggiornare una configurazione del database per abilitare la protezione dall'eliminazione.
Elenco database
Utilizza uno dei seguenti metodi per elencare i database:
Console Firebase
-
Nella console Firebase, vai alla pagina Database Firestore.
- Fai clic su Cloud Firestore per visualizzare tutti i database del progetto.
Interfaccia a riga di comando gcloud
Utilizza il comando
gcloud firestore databases list
per elencare tutti i database nel tuo progetto.
gcloud firestore databases list
Visualizza i dettagli del database
Per visualizzare i dettagli di un singolo database, utilizza uno dei seguenti metodi:
Console Firebase
-
Nella console Firebase, vai alla pagina Database Firestore.
- Seleziona un database dall'elenco.
Interfaccia a riga di comando gcloud
Utilizza il comando gcloud firestore databases describe
:
gcloud firestore databases describe --database=DATABASE_ID
Sostituisci DATABASE_ID con un ID database.
Aggiorna la configurazione del database
Per aggiornare le impostazioni di configurazione di un database, utilizza il
comando gcloud firestore databases update
.
Utilizza questo comando per modificare, attivare o disattivare la protezione da eliminazione.
Aggiorna l'impostazione di protezione da eliminazione
Per attivare la protezione dall'eliminazione su un database, utilizza il
comando gcloud firestore databases update
con il flag --delete-protection
. Ad esempio:
Interfaccia a riga di comando gcloud
gcloud firestore databases update --database=DATABASE_ID --delete-protection
Sostituisci DATABASE_ID con un ID database.
Per disattivare la protezione dall'eliminazione su un database, utilizza il
comando gcloud firestore databases update
con il flag --no-delete-protection
. Ad esempio:
Interfaccia a riga di comando gcloud
gcloud firestore databases update --database=DATABASE_ID --no-delete-protection
Sostituisci DATABASE_ID con un ID database.
Eliminare un database
Per eliminare un database, utilizza la console o lo strumento a riga di comando. L'eliminazione di un database non comporta addebiti per le operazioni di eliminazione.
Se per il database è abilitata l'impostazione di protezione da eliminazione, devi prima disabilitare la protezione da eliminazione.
Console Firebase
-
Nella console Firebase, vai alla pagina Database Firestore.
- Seleziona il database da eliminare.
- Fai clic su Mostra altro.
- Fai clic su Elimina per eliminare il database.
Interfaccia a riga di comando gcloud
Utilizza il comando `gcloud firestore databases delete`.
gcloud firestore databases delete --database=DATABASE_ID
Sostituisci DATABASE_ID con l'ID del database da eliminare.
Clonare un database
Puoi clonare un database esistente in un nuovo database in un timestamp selezionato:
Il database clonato è un nuovo database che verrà creato nella stessa posizione del database di origine.
Per creare un clone, Cloud Firestore utilizza i dati di recupero point-in-time (PITR) del database di origine. Il database clonato include tutti i dati e gli indici.
Per impostazione predefinita, il database clonato verrà criptato nello stesso modo del database di origine, utilizzando la crittografia predefinita di Google o la crittografia CMEK. Puoi specificare un tipo di crittografia diverso o utilizzare una chiave diversa per la crittografia CMEK.
Il timestamp ha una granularità di un minuto e specifica un punto nel tempo nel passato, nel periodo definito dalla finestra PITR:
- Se il PITR è abilitato per il tuo database, puoi selezionare qualsiasi minuto degli ultimi 7 giorni (o meno se il PITR è stato abilitato meno di 7 giorni fa).
- Se il PITR non è abilitato, puoi selezionare qualsiasi minuto dell'ultima ora.
- Puoi controllare il timestamp meno recente che puoi scegliere nella descrizione del database.
Console
Nella console Google Cloud, vai alla pagina Database.
Fai clic su
Visualizza altro nella riga della tabella per il database che vuoi clonare. Fai clic su Clona. Viene visualizzata la finestra di dialogo Crea un clone.Nella finestra di dialogo Crea una clonazione, fornisci i parametri per la clonazione del database:
Nel campo Assegna un ID al clone, inserisci un ID database per un nuovo database clonato. Questo ID database non deve essere associato a un database esistente.
Nel campo Clona da, seleziona un momento specifico da utilizzare per la clonazione. L'ora selezionata corrisponde a un timestamp PITR con granularità al minuto.
Fai clic su Crea clone.
gcloud
Utilizza il comando
gcloud alpha firestore databases clone
per clonare un database:
gcloud alpha firestore databases clone \
--source-database='SOURCE_DATABASE' \
--snapshot-time='PITR_TIMESTAMP' \
--destination-database='DESTINATION_DATABASE_ID'
Sostituisci quanto segue:
SOURCE_DATABASE: il nome del database di un database esistente che vuoi clonare. Il nome utilizza il formato
projects/PROJECT_ID/databases/SOURCE_DATABASE_ID
.PITR_TIMESTAMP: un timestamp PITR nel formato RFC 3339, con granularità al minuto. Ad esempio:
2025-06-01T10:20:00.00Z
o2025-06-01T10:30:00.00-07:00
.DESTINATION_DATABASE_ID: un ID database per un nuovo database clonato. Questo ID database non deve essere associato a un database esistente.
Esempio:
gcloud alpha firestore databases clone \
--source-database='projects/example-project/databases/(default)' \
--snapshot-time='2025-06-01T10:20:00.00Z' \
--destination-database='projects/example-project/databases/example-dest-db'
Modifica la configurazione della crittografia del database clonato
Per impostazione predefinita, il database clonato avrà la stessa configurazione di crittografia
del database di origine. Per modificare la configurazione della crittografia, utilizza l'argomento
--encryption-type
:
- (Predefinito)
use-source-encryption
: utilizza la stessa configurazione di crittografia del database di origine. google-default-encryption
: utilizza la crittografia predefinita di Google.customer-managed-encryption
: utilizza la crittografia CMEK. Specifica un ID chiave nell'argomento--kms-key-name
.
L'esempio seguente mostra come configurare la crittografia CMEK per il database clonato:
gcloud alpha firestore databases clone \
--source-database='projects/example-project/databases/(default)' \
--snapshot-time='2025-06-01T10:20:00.00Z' \
--destination-database='projects/example-project/databases/example-dest-db' \
--encryption-type='customer-managed-encryption' \
--kms-key-name='projects/example-project/locations/us-central1/keyRings/example-key-ring/cryptoKeys/example-key'
Configurare le autorizzazioni di accesso per database
Puoi utilizzare le condizioni di Identity and Access Management per configurare le autorizzazioni di accesso a livello di database. Gli esempi riportati di seguito utilizzano Google Cloud CLI per assegnare l'accesso condizionale per uno o più database. Puoi anche definire le condizioni IAM nella console Google Cloud.
Visualizza le policy IAM esistenti
gcloud projects get-iam-policy PROJECT_ID
Imposta PROJECT_ID
sull'ID progetto.
Concedere l'accesso a un database
gcloud projects add-iam-policy-binding PROJECT_ID \
--member='user:EMAIL' \
--role='roles/datastore.user' \
--condition='expression=resource.name=="projects/PROJECT_ID/databases/DATABASE_ID",title=TITLE,description=DESCRIPTION'
Imposta quanto segue:
PROJECT_ID
: il tuo ID progettoEMAIL
: un indirizzo email che rappresenta un account specifico. Ad esempio,alice@example.com
.DATABASE_ID
: un ID database.TITLE
: un titolo facoltativo per l'espressione.DESCRIPTION
: una descrizione facoltativa dell'espressione.
Concedere l'accesso a tutti i database tranne uno
gcloud projects add-iam-policy-binding PROJECT_ID \
--member='user:EMAIL' \
--role='roles/datastore.user' \
--condition='expression=resource.name!="projects/PROJECT_ID/databases/DATABASE_ID",title=TITLE,description=DESCRIPTION'
Imposta quanto segue:
PROJECT_ID
: il tuo ID progettoEMAIL
: un indirizzo email che rappresenta un account specifico. Ad esempio,alice@example.com
.DATABASE_ID
: un ID database.TITLE
: un titolo facoltativo per l'espressione.DESCRIPTION
: una descrizione facoltativa dell'espressione.
Rimuovere le policy per un determinato membro e ruolo
gcloud projects remove-iam-policy-binding PROJECT_ID \
--member='user:EMAIL' \
--role='roles/datastore.user' --all
Imposta quanto segue:
PROJECT_ID
: il tuo ID progettoEMAIL
: un indirizzo email che rappresenta un account specifico. Ad esempio,alice@example.com
.
Limitazioni
Puoi avere un massimo di 100 database per progetto. Puoi contattare l'assistenza per richiedere un aumento di questo limite.
Passaggi successivi
- Esegui la guida rapida: crea un database e connettiti.
- Scopri di più sulle differenze di comportamento.
- Scopri di più sulle metriche Cloud Monitoring per Cloud Firestore con compatibilità MongoDB.