Questa pagina descrive come creare, aggiornare ed eliminare i database Cloud Firestore. Puoi creare più database Cloud Firestore per progetto. È possibile utilizzare più database per configurare ambienti di produzione e di 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 la CLI di Google Cloud si connettono al database (default)
per impostazione predefinita.
(default)
.Ruoli richiesti
Per creare e gestire i database, è necessario il ruolo Owner
o Datastore Owner
Gestione identità e accessi. Questi ruoli concedono le autorizzazioni necessarie.
Autorizzazioni richieste
Per gestire i database, sono necessarie le seguenti autorizzazioni:
- Creare un database:
datastore.databases.create
- Leggi la configurazione del database:
datastore.databases.getMetadata
- Configurare un database:
datastore.databases.update
- Elimina un database:
datastore.databases.delete
Creare una banca dati
Per creare un database, utilizzare uno dei seguenti metodi:
Consolle
Nella console di Google Cloud Platform, vai alla pagina Database .
- Fare clic su Crea database .
- Seleziona una modalità database. Fare clic su Continua
- Configura il tuo database. Inserisci un ID database. Seleziona una posizione. Fare clic su Crea database .
gcloud
Utilizza il comando gcloud alpha firestore databases create
.
gcloud alpha 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 multiregione o di una regione Cloud Firestore .
- DATABASE_TYPE :
firestore-native
per la modalità nativa o datastore-mode per la modalità Datastore.
--delete-protection
è un flag opzionale per abilitare la protezione dall'eliminazione. Non è possibile eliminare un database con la protezione dall'eliminazione abilitata finché non si disabilita questa impostazione. Questa impostazione è disabilitata per impostazione predefinita.
CLI 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 multiregione o di una regione Cloud Firestore .
- DELETE_PROTECTION_ENABLEMENT :
ENABLED
oDISABLED
. Il database creato è sempre in modalità Firestore Native.
--delete-protection
Terraformare
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 multiregione o di una regione 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 abilitare la protezione dall'eliminazione. Non è possibile eliminare un database con la protezione dall'eliminazione abilitata finché non si disabilita questa impostazione. Questa impostazione è disabilitata per impostazione predefinita.
Identificativo della banca dati
Gli ID database validi includono (default)
e 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 potrai riutilizzare immediatamente l'ID del database se non dopo 5 minuti.
Elimina la protezione
Utilizzare la protezione dall'eliminazione per impedire l'eliminazione accidentale di un database. Non è possibile eliminare un database con la protezione dall'eliminazione abilitata finché non si disattiva la protezione dall'eliminazione. La protezione dall'eliminazione è disabilitata per impostazione predefinita. È possibile abilitare la protezione dall'eliminazione quando si crea il database oppure aggiornare la configurazione di un database per abilitare la protezione dall'eliminazione.
Configura le regole di sicurezza di Cloud Firestore per i tuoi database
Utilizza la CLI Firebase per distribuire le regole di sicurezza di Cloud Firestore su ciascuno dei tuoi database. Fare riferimento alla guida per la gestione e la distribuzione delle regole di sicurezza di Cloud Firestore .
Accedi 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 API di Google si connettono al database Cloud Firestore (default)
in un progetto. Per creare un client connesso a un database denominato, impostare l'ID del database quando si crea un'istanza di un client.
Elenca i database
Utilizza uno dei seguenti metodi per elencare i tuoi database:
Consolle
Nella console di Google Cloud Platform, vai alla pagina Database .
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 su un singolo database, utilizza il comando gcloud firestore databases describe
:
gcloud
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, utilizzare il comando gcloud alpha firestore databases update
. Utilizzare questo comando per abilitare o disabilitare la protezione dall'eliminazione.
Aggiorna l'impostazione di protezione dall'eliminazione
Per abilitare la protezione dall'eliminazione su un database, utilizza il comando gcloud alpha firestore databases update
con il flag --delete-protection
. Per esempio:
gcloud
gcloud alpha firestore databases update --database=DATABASE_ID --delete-protection
Sostituisci DATABASE_ID con un ID database.
Per disabilitare la protezione dall'eliminazione su un database, utilizza il comando gcloud alpha firestore databases update
con il flag --no-delete-protection
. Per esempio:
gcloud
gcloud alpha firestore databases update --database=DATABASE_ID --no-delete-protection
Sostituisci DATABASE_ID con un ID database.
Elimina un database
Per eliminare un database, utilizzare la console o lo strumento da riga di comando.
Se nel database è abilitata l'impostazione di protezione dall'eliminazione, è necessario prima disabilitare la protezione dall'eliminazione .
Se il database contiene dati di ricerca di App Engine o entità BLOB , devi prima eliminare tali dati.
L'eliminazione di un database non elimina automaticamente alcun trigger Eventarc per quel database. Il trigger smette di fornire eventi ma continua a esistere finché non lo elimini .
Consolle
Nella console di Google Cloud Platform, vai alla pagina Database .
- Fai clic su Visualizza altro nella riga della tabella relativa al database che desideri eliminare. Fare clic su Elimina . Viene visualizzata una finestra di dialogo.
Nel database Elimina? finestra di dialogo, confermare l'eliminazione digitando l'ID del database nel campo di testo. Fare clic su Elimina . La console informa dell'esito positivo o negativo dell'operazione.
Se l'operazione non riesce, visualizzare i dettagli del database e verificare che la protezione dall'eliminazione sia disabilitata. Per disattivare la protezione dall'eliminazione, consulta Aggiornamento dell'impostazione della protezione dall'eliminazione .
gcloud
Utilizza il comando "gcloud alpha firestore databases delete" .
gcloud alpha firestore databases delete --database=DATABASE_ID
Sostituisci DATABASE_ID con l'ID del database da eliminare.
Configurare le autorizzazioni di accesso per database
È possibile utilizzare le condizioni di gestione dell'identità e dell'accesso per configurare le autorizzazioni di accesso a livello di database. Gli esempi seguenti utilizzano la CLI di Google Cloud per assegnare l'accesso condizionale a uno o più database. Puoi anche definire le condizioni IAM nella console GCP .
Visualizza le policy 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 progetto -
EMAIL
: un indirizzo email che rappresenta uno specifico account Google. Ad esempio,alice@example.com
. -
DATABASE_ID
: un ID del 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 progetto -
EMAIL
: un indirizzo email che rappresenta uno specifico account Google. Ad esempio,alice@example.com
. -
DATABASE_ID
: un ID del 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 progetto -
EMAIL
: un indirizzo email che rappresenta uno specifico account Google. Ad esempio,alice@example.com
.
Monitoraggio del cloud
I parametri di Cloud Firestore sono riportati in due risorse monitorate.
Puoi controllare le metriche aggregate a livello di database consultando firestore.googleapis.com/Database
. I parametri riportati in firestore_instance
sono aggregati 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 se contiene dati di ricerca GAE e/o entità BLOB . Utilizza l'API di eliminazione dell'indice per eliminare i dati di ricerca GAE e l'API di eliminazione del Blobstore per eliminare i dati del Blobstore.
- Non è possibile riutilizzare un ID database fino a 5 minuti dopo l'eliminazione.
- Cloud Function v1 non supporta i database denominati Firestore. Utilizza i trigger Cloud Firestore (2a generazione) per configurare gli eventi per i database denominati.
- I trigger di funzioni Firestore v1 e i trigger di eventi Firestore potrebbero smettere di funzionare dopo l'eliminazione del database, anche se viene creato un nuovo database con lo stesso nome.