Esta página descreve como criar, atualizar e excluir bancos de dados do Cloud Firestore. É possível criar vários bancos de dados do Cloud Firestore por projeto. É possível usar vários bancos de dados para configurar ambientes de produção e teste, isolar dados de clientes e regionalizar os dados.
O banco de dados (default)
Se o app não exigir vários bancos de dados, use o (default)
.
Se você não especificar um banco de dados, as bibliotecas de cliente do Cloud Firestore e a CLI do Google Cloud vão se conectar ao banco de dados (default)
por padrão.
(default)
.
Funções exigidas
Para criar e gerenciar bancos de dados, você precisa do papel de gerenciamento de identidade e acesso Owner
ou Datastore Owner
. Esses papéis concedem as permissões necessárias.
Permissões necessárias
Para gerenciar bancos de dados, você precisa das seguintes permissões:
- Criar um banco de dados:
datastore.databases.create
- Ler configuração de banco de dados:
datastore.databases.getMetadata
- Configurar um banco de dados:
datastore.databases.update
- Excluir um banco de dados:
datastore.databases.delete
criar um banco de dados
Para criar um banco de dados, use um dos seguintes métodos:
Console
-
No console do Firebase, acesse a página Banco de dados do Firestore.
- Se este for seu primeiro banco de dados nomeado, clique em Adicionar banco de dados.
- Caso contrário, clique em (padrão) e em Adicionar banco de dados.
- Configurar o banco de dados. Insira um ID do banco de dados. Selecione um local. Clique em Criar banco de dados.
gcloud
Use o comando gcloud firestore databases create
.
gcloud firestore databases create \ --database=DATABASE_ID \ --location=LOCATION \ --type=DATABASE_TYPE \ [--delete-protection]
Substitua:
- DATABASE_ID: um ID válido do banco de dados.
- LOCATION: o nome de uma multirregião ou região do Cloud Firestore.
- DATABASE_TYPE:
firestore-native
para o modo nativo oudatastore-mode
para o modo Datastore.
--delete-protection
é uma sinalização opcional para ativar a proteção contra exclusão.
Não é possível excluir um banco de dados com a proteção contra exclusão ativada até que essa configuração seja desativada. Esta configuração fica desativada por padrão.
CLI do Firebase
firebase firestore:databases:create DATABASE_ID \ --location=LOCATION \ [--delete-protection DELETE_PROTECTION_ENABLEMENT]
Substitua:
- DATABASE_ID: um ID válido do banco de dados.
- LOCATION: o nome de uma multirregião ou região do Cloud Firestore.
- DELETE_PROTECTION_ENABLEMENT:
ENABLED
ouDISABLED
.
O banco de dados criado está sempre no modo nativo do Firestore.
--delete-protection
é um argumento opcional para ativar a proteção contra exclusão. Não é possível excluir um banco de dados com a proteção contra exclusão ativada até que essa configuração seja desativada. Esta configuração fica desativada por padrão.
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 }
Substitua:
- DATABASE_ID: um ID válido do banco de dados.
- LOCATION: o nome de uma multirregião ou região do Cloud Firestore.
- DATABASE_TYPE:
FIRESTORE_NATIVE
para o modo nativo ouDATASTORE_MODE
para o modo Datastore. - DELETE_PROTECTION_ENABLEMENT:
DELETE_PROTECTION_ENABLED
ouDELETE_PROTECTION_DISABLED
.
delete_protection_state
é um argumento opcional para ativar a proteção contra exclusão. Não é possível excluir um banco de dados com a proteção contra exclusão ativada até que essa configuração seja desativada. Esta configuração fica desativada por padrão.
ID do banco de dados
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 hífen (
-
). - As letras precisam ser minúsculas.
- O primeiro caractere precisa ser uma letra.
- O último caractere precisa ser uma letra ou um número.
- Mínimo de 4 caracteres
- Tem no máximo 512 caracteres.
- Não pode ser um UUID ou se parecer com 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 o ID imediatamente após cinco minutos.
Proteção contra exclusão
Use a proteção contra exclusão para evitar a exclusão acidental de um banco de dados. Não é possível excluir um banco de dados com a proteção contra exclusão ativada até que você desative o recurso. A proteção contra exclusão está desativada por padrão. É possível 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.
Configurar Cloud Firestore Security Rules para seus bancos de dados
Use a CLI do Firebase para implantar o Cloud Firestore Security Rules em cada um dos bancos de dados. Consulte o guia para gerenciar e implantar Cloud Firestore Security Rules.
Acessar um banco de dados nomeado com uma biblioteca de cliente
Um banco de dados nomeado inclui qualquer banco de dados não denominado (default)
. Por padrão, os SDKs do Firebase e as bibliotecas de cliente das APIs 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 métodos a seguir para listar seus bancos de dados:
Console
No Console do Google Cloud, acesse a página Bancos de Dados.
gcloud
Use o comando gcloud firestore databases list
para listar todos os bancos de dados no seu projeto.
gcloud firestore databases list
CLI do Firebase
Use o comando firebase firestore:databases:list
para listar todos os bancos de dados no seu projeto.
firebase firestore:databases:list
Acessar detalhes do banco de dados
Para conferir detalhes sobre um único banco de dados, use um dos seguintes métodos:
gcloud
Use o comando gcloud firestore databases describe
:
gcloud firestore databases describe --database=DATABASE_ID
CLI do Firebase
Use o comando firebase firestore:databases:get
:
firebase firestore:databases:get DATABASE_ID
Substitua DATABASE_ID por um ID do banco de dados.
Atualizar configuração do banco de dados
Para atualizar as definições de configuração de um banco de dados, use o comando gcloud firestore databases update
.
Use este comando para ativar ou desativar a 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 firestore databases update
com a sinalização --delete-protection
. Por exemplo:
gcloud
gcloud 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 firestore databases update
com a sinalização --no-delete-protection
. Por exemplo:
gcloud
gcloud 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 ativada, primeiro desative a proteção contra exclusão.
Se o banco de dados tiver dados de pesquisa do App Engine ou entidades de blob, é necessário excluir esses dados primeiro.
A exclusão de um banco de dados não remove automaticamente nenhum gatilho do Eventarc dele. O acionador deixa de entregar eventos, mas continua existindo até que você o exclua.
Console
-
No console do Firebase, acesse a página Banco de dados do Firestore.
- Na guia "Dados", acima da visualização em tabela de dados do banco de dados, clique em e selecione Excluir banco de dados.
- Siga as instruções para excluir o banco de dados.
gcloud
Use o comando `gcloud firestore database delete`.
gcloud 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
Use as Condições do Identity and Access Management para configurar as 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. Também é possível definir as condições do IAM no console do Google Cloud.
Conferir políticas do IAM atuais
gcloud projects get-iam-policy PROJECT_ID
Defina PROJECT_ID
como o ID do 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 projetoEMAIL
: um endereço de e-mail que representa uma Conta do 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.
Conceder acesso a todos, exceto 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 projetoEMAIL
: um endereço de e-mail que representa uma Conta do 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 para um determinado membro e papel
gcloud projects remove-iam-policy-binding PROJECT_ID \
--member='user:EMAIL' \
--role='roles/datastore.user' --all
Defina o seguinte:
PROJECT_ID
: o ID do projetoEMAIL
: um endereço de e-mail que representa uma Conta do Google específica. Por exemplo,alice@example.com
.
Cloud Monitoring
As métricas do Cloud Firestore são informadas em dois recursos monitorados.
É possível inspecionar métricas agregadas no nível do banco de dados observando firestore.googleapis.com/Database
. As métricas informadas em firestore_instance
são agregadas no nível do projeto.
Limitações
- É possível ter no máximo 100 bancos de dados por projeto. Você pode entrar em contato com o suporte para solicitar um aumento desse limite.
- Não é possível excluir o banco de dados
(default)
se ele tiver dados de pesquisa do GAE. Use a API index delete para excluir os dados de pesquisa do GAE. Se você excluiu recentemente dados de pesquisa do GAE, talvez seja necessário aguardar um período antes de excluir o banco de dados. - Não é possível excluir o banco de dados
(default)
se ele tiver entidades de blob. Use a API Blobstore delete para excluir os dados do Blobstore. Para verificar se o banco de dados(default)
tem dados do Blobstore, execute a seguinte consulta GQL no console do Google Cloud:SELECT * FROM __BlobInfo__
. - Não é possível reutilizar um ID de banco de dados até cinco minutos após a exclusão.
- O Cloud Function v1 não é compatível com bancos de dados nomeados do Firestore. Use os gatilhos do Cloud Firestore (2a geração) para configurar eventos para bancos de dados nomeados.
- Os acionadores de função do Firestore v1 e os acionadores de evento do Firestore podem parar de funcionar depois que o banco de dados for excluído, mesmo que um novo banco de dados seja criado com o mesmo nome.