Questa pagina descrive come creare, aggiornare ed eliminare i database Cloud Firestore. 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.
Il database (default)
Se la tua app non richiede più database, utilizza il database (default)
.
Se non specifichi un database, le librerie client Cloud Firestore
e Google Cloud CLI si connettono al database (default)
per impostazione predefinita.
(default)
.
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:
- Crea 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
Crea un database
Per creare un database, utilizza uno dei seguenti metodi:
Console
-
Nella console Firebase, vai alla pagina Database Firestore.
- Se si tratta del tuo primo database denominato, fai clic su Aggiungi database.
- In caso contrario, fai clic su (predefinito) e poi su Aggiungi database.
- Configura il database. Inserisci un ID database. Seleziona una località. Fai clic su Crea database.
gcloud
Utilizza il comando
gcloud firestore databases create
.
gcloud firestore databases create \ --database=DATABASE_ID \ --location=LOCATION \ --type=DATABASE_TYPE \ [--delete-protection]
Sostituisci quanto segue:
- DATABASE_ID: un ID database valido.
- LOCATION: il nome di una regione o di un insieme di regioni Cloud Firestore.
- DATABASE_TYPE:
firestore-native
per la modalità nativa odatastore-mode
per la modalità Datastore.
--delete-protection
è un flag facoltativo per attivare la protezione da eliminazione.
Non puoi eliminare un database con la protezione dall'eliminazione abilitata finché non disattivi questa impostazione. Questa impostazione è disattivata per impostazione predefinita.
interfaccia a riga di comando di Firebase
firebase firestore:databases:create DATABASE_ID \ --location=LOCATION \ [--delete-protection DELETE_PROTECTION_ENABLEMENT]
Sostituisci quanto segue:
- DATABASE_ID: un ID database valido.
- LOCATION: il nome di una regione o di una regione con più regioni Cloud Firestore.
- DELETE_PROTECTION_ENABLEMENT:
ENABLED
oDISABLED
.
Il database creato è sempre in modalità Firestore Native.
--delete-protection
è un argomento facoltativo per attivare la protezione da eliminazione. Non puoi eliminare un database con la protezione dall'eliminazione abilitata finché non disattivi questa impostazione. Questa impostazione è
disattivata per impostazione predefinita.
Terraform
resource "google_firestore_database" "database" { project = "project-id" name = DATABASE_ID location_id = LOCATION type = DATABASE_TYPE // Optional delete_protection_state = DELETE_PROTECTION_STATE }
Sostituisci quanto segue:
- DATABASE_ID: un ID database valido.
- LOCATION: il nome di una regione o di una regione con più regioni Cloud Firestore.
- DATABASE_TYPE:
FIRESTORE_NATIVE
per la modalità nativa oDATASTORE_MODE
per la modalità Datastore. - DELETE_PROTECTION_ENABLEMENT:
DELETE_PROTECTION_ENABLED
oDELETE_PROTECTION_DISABLED
.
delete_protection_state
è un argomento facoltativo per attivare la protezione da eliminazione. Non puoi eliminare un database con la protezione dall'eliminazione abilitata
fino a quando non disattivi questa impostazione. Questa impostazione è disattivata per impostazione predefinita.
ID database
Gli ID database validi includono (default)
e gli ID conformi a quanto segue:
- Include solo lettere, numeri e il carattere trattino (
-
). - 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 evitare l'eliminazione accidentale di un database. Non puoi eliminare un database con la protezione dall'eliminazione abilitata finché non disattivi la protezione dall'eliminazione. La protezione da eliminazione è disattivata per impostazione predefinita. Puoi attivare la protezione dall'eliminazione quando crei il database oppure puoi aggiornare una configurazione del database per attivarla.
Configurare Cloud Firestore Security Rules per i database
Utilizza l'interfaccia a riga di comando Firebase per eseguire il deployment di Cloud Firestore Security Rules in ciascuno dei tuoi database. Consulta la guida per la gestione e il deployment di Cloud Firestore Security Rules.
Accedere a un database denominato con una libreria client
Un database denominato include qualsiasi database non denominato (default)
. Per impostazione predefinita,
gli SDK Firebase e le librerie client delle API Google si connettono al database (default)
Cloud Firestore in un progetto. Per creare un client collegato
a un database denominato, imposta l'ID database quando esegui l'inizializzazione di un client.
Elenco database
Utilizza uno dei seguenti metodi per elencare i tuoi database:
Console
Nella console Google Cloud, vai alla pagina Database.
gcloud
Utilizza il comando
gcloud firestore databases list
per elencare tutti i database del tuo progetto.
gcloud firestore databases list
interfaccia a riga di comando di Firebase
Utilizza il comando firebase firestore:databases:list
per elencare tutti i database del tuo progetto.
firebase firestore:databases:list
Visualizza i dettagli del database
Per visualizzare i dettagli di un singolo database, utilizza uno dei seguenti metodi:
gcloud
Utilizza il comando gcloud firestore databases describe
:
gcloud firestore databases describe --database=DATABASE_ID
interfaccia a riga di comando di Firebase
Utilizza il comando firebase firestore:databases:get
:
firebase firestore:databases:get 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 attivare o disattivare la protezione dall'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:
gcloud
gcloud firestore databases update --database=DATABASE_ID --delete-protection
Sostituisci DATABASE_ID con un ID database.
Per disattivare la protezione dall'eliminazione in un database, utilizza il comando gcloud firestore databases update
con il flag --no-delete-protection
. Ad esempio:
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.
Se nel database è abilitata l'impostazione di protezione dall'eliminazione, devi prima disattivare la protezione dall'eliminazione.
Se il database contiene App Engine dati di ricerca o entità blob, devi prima eliminare questi dati.
L'eliminazione di un database non comporta l'eliminazione automatica di eventuali Eventarc trigger per quel database. L'attivatore interrompe l'invio di eventi, ma continua a esistere finché non lo elimini.
Console
-
Nella console Firebase, vai alla pagina Database Firestore.
- Nella scheda Dati, sopra la visualizzazione della tabella di dati per il database, fai clic su e poi seleziona Elimina database.
- Segui le istruzioni per eliminare il database.
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.
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. I seguenti esempi 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 i criteri IAM esistenti
gcloud projects get-iam-policy PROJECT_ID
Imposta PROJECT_ID
sul tuo 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 Google specifico. Ad esempio,alice@example.com
.DATABASE_ID
: un ID database.TITLE
: un titolo facoltativo per l'espressione.DESCRIPTION
: una descrizione facoltativa dell'espressione.
Concedi 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 Google 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 i criteri 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 Google specifico. Ad esempio,alice@example.com
.
Cloud Monitoring
Le metriche Cloud Firestore vengono registrate in due risorse monitorate.
Puoi esaminare le metriche aggregate a livello di database consultando firestore.googleapis.com/Database
. Le metriche riportate in firestore_instance
sono aggregate a livello di progetto.
Limitazioni
- Puoi avere un massimo di 100 database per progetto. Puoi contattare l'assistenza per richiedere un aumento di questo limite.
- Non puoi eliminare il database
(default)
se contiene dati di ricerca GAE. Utilizza l'API di eliminazione dell'indice per eliminare i dati di ricerca GAE. Se di recente hai eliminato i dati di ricerca GAE, potrebbe essere necessario attendere prima di poter eliminare il database. - Non puoi eliminare il database
(default)
se contiene entità blob. Utilizza l'API di eliminazione di Blobstore per eliminare i dati di Blobstore. Puoi verificare se il tuo database(default)
contiene dati di Blobstore eseguendo la seguente query GQL nella console Google Cloud:SELECT * FROM __BlobInfo__
. - Non puoi riutilizzare un ID database fino a 5 minuti dopo l'eliminazione.
- La versione 1 di Cloud Function non supporta i database con nome Firestore. Utilizza gli attivatori Cloud Firestore (2ª gen.) per configurare gli eventi per i database denominati.
- Gli attivatori di funzioni Firestore 1.0 e gli attivatori di eventi Firestore potrebbero non funzionare più dopo l'eliminazione del database, anche se ne viene creato uno nuovo con lo stesso nome.