Gerenciar bancos de dados

Esta página descreve como criar, atualizar e excluir bancos de dados do Cloud Firestore. Você pode criar vários bancos de dados do Cloud Firestore por projeto. Você pode usar vários bancos de dados para configurar ambientes de produção e teste, para isolar dados de clientes e para regionalização de dados.

O banco de dados (default)

Se seu aplicativo não exigir vários bancos de dados, use o banco de dados (default) .

Se você não especificar um banco de dados, as bibliotecas de cliente do Cloud Firestore e a Google Cloud CLI se conectarão ao banco de dados (default) por padrão.

Você pode usar a cota Gratuita somente com o banco de dados (default) .

Funções obrigatórias

Para criar e gerenciar bancos de dados, você precisa da função Owner ou Gerenciamento de acesso e identidade Datastore Owner . Essas funções concedem as permissões necessárias.

Permissões necessárias

Para gerenciar bancos de dados, você precisa das seguintes permissões:

  • Crie um banco de dados: datastore.databases.create
  • Leia a configuração do banco de dados: datastore.databases.getMetadata
  • Configure um banco de dados: datastore.databases.update
  • Exclua um banco de dados: datastore.databases.delete

Crie um banco de dados

Para criar um banco de dados, use um dos seguintes métodos:

Console
  1. No console do Google Cloud Platform, acesse a página Bancos de dados .

    Vá para bancos de dados

  2. Clique em Criar banco de dados .
  3. Selecione um modo de banco de dados. Clique em Continuar
  4. Configure seu banco de dados. Insira um ID do banco de dados. Selecione um local. Clique em Criar banco de dados .
gcloud

Use o comando gcloud alpha firestore databases create .

gcloud alpha firestore databases create \
--database=DATABASE_ID \
--location=LOCATION \
--type=DATABASE_TYPE \
[--delete-protection]

Substitua o seguinte:

--delete-protection é um sinalizador opcional para ativar a proteção contra exclusão. Você não pode excluir um banco de dados com a proteção contra exclusão ativada até desabilitar essa configuração. Esta configuração está desativada por padrão.

CLI do Firebase
firebase firestore:databases:create DATABASE_ID \
--location=LOCATION \
[--delete-protection DELETE_PROTECTION_ENABLEMENT]

Substitua o seguinte:

--delete-protection é um argumento opcional para ativar a proteção contra exclusão. Você não pode excluir um banco de dados com a proteção contra exclusão ativada até desabilitar essa configuração. Esta configuração está desativada por padrão.

Terraforma
resource "google_firestore_database" "database" {
  project     = "project-id"
  name        = DATABASE_ID
  location_id = LOCATION
  type        = DATABASE_TYPE

  // Optional
  delete_protection_state = DELETE_PROTECTION_STATE
}

Substitua o seguinte:

delete_protection_state é um argumento opcional para ativar a proteção contra exclusão. Você não pode excluir um banco de dados com a proteção contra exclusão ativada até desabilitar essa configuração. Esta configuração está desativada por padrão.

ID do banco de dados

Os IDs de banco de dados válidos incluem (default) e IDs que estão em conformidade com o seguinte:

  • Inclui apenas letras, números e caracteres de hífen ( - ).
  • As letras devem ser minúsculas.
  • O primeiro caractere deve ser uma letra.
  • O último caractere deve ser uma letra ou um número.
  • Mínimo de 4 caracteres.
  • Máximo de 63 caracteres.
  • Não deve ser um UUID ou assemelhar-se a um UUID. Por exemplo, não use um ID como f47ac10b-58cc-0372-8567-0e02b2c3d479 .

Se você excluir um banco de dados, não poderá reutilizar imediatamente o ID do banco de dados antes de 5 minutos.

Excluir proteção

Use a proteção contra exclusão para evitar a exclusão acidental de um banco de dados. Você não pode excluir um banco de dados com a proteção contra exclusão habilitada até desabilitar a proteção contra exclusão. A proteção contra exclusão está desabilitada por padrão. Você pode ativar a proteção contra exclusão ao criar o banco de dados ou atualizar uma configuração de banco de dados para ativar a proteção contra exclusão.

Configure regras de segurança do Cloud Firestore para seus bancos de dados

Use a CLI do Firebase para implantar regras de segurança do Cloud Firestore em cada um dos seus bancos de dados. Consulte o guia para gerenciar e implantar regras de segurança do Cloud Firestore .

Acesse um banco de dados nomeado com uma biblioteca cliente

Um banco de dados nomeado inclui qualquer banco de dados não nomeado (default) . Por padrão, os SDKs do Firebase e as bibliotecas de cliente da API do Google se conectam ao banco de dados (default) do Cloud Firestore em um projeto. Para criar um cliente conectado a um banco de dados nomeado, defina o ID do banco de dados ao instanciar um cliente.

Listar bancos de dados

Use um dos seguintes métodos para listar seus bancos de dados:

Console

No console do Google Cloud Platform, acesse a página Bancos de dados .

Vá para bancos de dados

gcloud

Use o comando gcloud firestore databases list para listar todos os bancos de dados do seu projeto.

gcloud firestore databases list

Ver detalhes do banco de dados

Para visualizar detalhes sobre um único banco de dados, use o comando gcloud firestore databases describe :

gcloud
gcloud firestore databases describe --database=DATABASE_ID

Substitua DATABASE_ID por um ID do banco de dados.

Atualizar configuração do banco de dados

Para atualizar as configurações de um banco de dados, use o comando gcloud alpha firestore databases update . Use este comando para alterar a ativação ou desativação da proteção contra exclusão.

Atualizar a configuração de proteção contra exclusão

Para ativar a proteção contra exclusão em um banco de dados, use o comando gcloud alpha firestore databases update com a sinalização --delete-protection . Por exemplo:

gcloud
gcloud alpha firestore databases update --database=DATABASE_ID --delete-protection

Substitua DATABASE_ID por um ID do banco de dados.

Para desativar a proteção contra exclusão em um banco de dados, use o comando gcloud alpha firestore databases update com a sinalização --no-delete-protection . Por exemplo:

gcloud
gcloud alpha firestore databases update --database=DATABASE_ID --no-delete-protection

Substitua DATABASE_ID por um ID do banco de dados.

Excluir um banco de dados

Para excluir um banco de dados, use o console ou a ferramenta de linha de comando.

Se o banco de dados tiver a configuração de proteção contra exclusão habilitada, você deverá primeiro desabilitar a proteção contra exclusão .

Se o banco de dados contiver dados de pesquisa ou entidades blob do App Engine , você deverá excluir esses dados primeiro.

A exclusão de um banco de dados não exclui automaticamente nenhum acionador do Eventarc desse banco de dados. O gatilho para de entregar eventos, mas continua existindo até que você exclua o gatilho .

Console
  1. No console do Google Cloud Platform, acesse a página Bancos de dados .

    Vá para bancos de dados

  2. Clique em Ver mais na linha da tabela do banco de dados que você deseja excluir. Clique em Excluir . Uma caixa de diálogo é exibida.
  3. No banco de dados Excluir? caixa de diálogo, confirme a exclusão digitando o ID do banco de dados no campo de texto. Clique em Excluir . O console informa sobre o sucesso ou falha da operação.

    Se a operação falhar, visualize os detalhes do banco de dados e verifique se a proteção contra exclusão está desabilitada. Para desativar a proteção contra exclusão, consulte Atualizar a configuração de proteção contra exclusão .

gcloud

Use o comando `gcloud alpha firestore databases delete` .

gcloud alpha firestore databases delete --database=DATABASE_ID

Substitua DATABASE_ID pelo ID do banco de dados a ser excluído.

Configurar permissões de acesso por banco de dados

Você pode usar Condições de gerenciamento de identidade e acesso para configurar permissões de acesso por banco de dados. Os exemplos a seguir usam a CLI do Google Cloud para atribuir acesso condicional a um ou mais bancos de dados. Você também pode definir as condições do IAM no Console do GCP .

Ver políticas IAM existentes

gcloud projects get-iam-policy PROJECT_ID

Defina PROJECT_ID como o ID do seu projeto.

Conceder acesso a um banco de dados

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'

Defina o seguinte:

  • PROJECT_ID : o ID do seu projeto
  • EMAIL : um endereço de e-mail que representa uma conta Google específica. Por exemplo, alice@example.com .
  • DATABASE_ID : um ID do banco de dados.
  • TITLE : um título opcional para a expressão.
  • DESCRIPTION : uma descrição opcional da expressão.

Conceda acesso a todos, exceto um banco de dados

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'

Defina o seguinte:

  • PROJECT_ID : o ID do seu projeto
  • EMAIL : um endereço de e-mail que representa uma conta Google específica. Por exemplo, alice@example.com .
  • DATABASE_ID : um ID do banco de dados.
  • TITLE : um título opcional para a expressão.
  • DESCRIPTION : uma descrição opcional da expressão.

Remover políticas de um determinado membro e função

gcloud projects remove-iam-policy-binding PROJECT_ID \
--member='user:EMAIL' \
--role='roles/datastore.user' --all

Defina o seguinte:

  • PROJECT_ID : o ID do seu projeto
  • EMAIL : um endereço de e-mail que representa uma conta Google específica. Por exemplo, alice@example.com .

Monitoramento de nuvem

As métricas do Cloud Firestore são relatadas em dois recursos monitorados.

Você pode inspecionar métricas agregadas no nível do banco de dados consultando firestore.googleapis.com/Database . As métricas relatadas em firestore_instance são agregadas no nível do projeto.

Limitações

Qual é o próximo