Gestisci database

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.

È possibile utilizzare la quota gratuita solo con il database (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
  1. Nella console di Google Cloud Platform, vai alla pagina Database .

    Vai a Database

  2. Fare clic su Crea database .
  3. Seleziona una modalità database. Fare clic su Continua
  4. 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:

--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:

--delete-protection è 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.

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:

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 .

Vai a 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
  1. Nella console di Google Cloud Platform, vai alla pagina Database .

    Vai a Database

  2. 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.
  3. 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

Qual è il prossimo