Criar e gerenciar bancos de dados
Nesta página, descrevemos como criar, atualizar e excluir bancos de dados do Firestore com compatibilidade com o MongoDB. É possível criar vários bancos de dados do 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.
Uso do nível sem custos financeiros
O Firestore oferece um nível gratuito para você começar sem custos financeiros.
O nível sem custos financeiros se aplica a apenas um banco de dados do Firestore por projeto. O primeiro banco de dados criado em um projeto sem um banco de dados de nível sem custos financeiros vai receber esse nível. Se o banco de dados com o nível sem custos financeiros aplicado for excluído, o próximo banco de dados criado vai receber o nível sem custos financeiros.
Antes de começar
Antes de criar um banco de dados, faça o seguinte:
-
Verify that billing is enabled for your Google Cloud project.
- Atribua os papéis apropriados do Identity and Access Management (IAM) conforme descrito na próxima seção.
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
- Clonar um banco de dados:
datastore.databases.clone
Criar um banco de dados
Para criar um banco de dados do Firestore com compatibilidade com o MongoDB, use um dos seguintes métodos:
Console doGoogle Cloud
-
No console do Google Cloud , acesse a página Bancos de dados.
- Clique em Criar um banco de dados do Firestore.
- Insira um ID do banco de dados.
- Selecione a edição Enterprise.
- Selecione um local para seu banco de dados.
- (Opcional) Se você precisar personalizar a criptografia, clique em Mostrar opções de criptografia e configure as opções.
- Clique em Criar banco de dados.
CLI do Firebase
firebase firestore:databases:create --edition EDITION DATABASE_ID \ --location=LOCATION
CLI da gcloud
Use o comando
gcloud firestore databases create
e defina --edition=enterprise
.
gcloud firestore databases create \ --database=DATABASE_ID \ --location=LOCATION \ --edition=enterprise
Substitua:
- DATABASE_ID: um ID válido do banco de dados.
- LOCATION: o nome de uma multirregião ou região do Firestore com compatibilidade com o MongoDB.
Para ativar a proteção contra exclusão, adicione a sinalização --delete-protection
.
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.
gcloud firestore databases create \ --database=DATABASE_ID \ --location=LOCATION \ --edition=enterprise \ --delete-protection
Para adicionar tags ao banco de dados, use a flag --tags
. Exemplo:
--tags=123/environment=production,123/costCenter=marketing
--tags=tagKeys/333=tagValues/444
Terraform
Use o recurso
google_firestore_database
e defina database_edition
como ENTERPRISE
.
resource "google_firestore_database" "database" { name = "DATABASE_ID" location_id = "LOCATION" type = "FIRESTORE_NATIVE" database_edition = "ENTERPRISE" // 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 Firestore com compatibilidade com o MongoDB.
- DELETE_PROTECTION_ENABLEMENT:
DELETE_PROTECTION_ENABLED
ouDELETE_PROTECTION_DISABLED
.
Para ativar a proteção contra exclusão, defina delete_protection_state
como DELETE_PROTECTION_ENABLED
.
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 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. A proteção contra exclusão funciona da seguinte maneira:
- 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.
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.
CLI da gcloud
Use o comando gcloud firestore databases list
para listar todos os bancos de dados no seu projeto.
gcloud firestore databases list
Acessar detalhes do banco de dados
Para conferir detalhes sobre um único banco de dados, use um dos seguintes métodos:
Console doGoogle Cloud
-
No console do Google Cloud , acesse a página Bancos de dados.
- Selecione um banco de dados na lista.
CLI da gcloud
Use o comando gcloud firestore databases describe
:
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 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
. Exemplo:
CLI da 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
. Exemplo:
CLI da 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. A exclusão de um banco de dados não gera cobranças por operações de exclusão.
Se o banco de dados tiver a configuração de proteção contra exclusão ativada, primeiro desative a proteção contra exclusão.
Console doGoogle Cloud
-
No console do Google Cloud , acesse a página Bancos de dados.
- Clique em Ver mais na coluna Ações do banco de dados que você quer excluir. Clique em Excluir. Uma caixa de diálogo será exibida.
Na caixa de diálogo Excluir banco de dados?, 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 a falha da operação.
Se a operação falhar, confira os detalhes do banco de dados e verifique se a proteção contra exclusão está desativada. Para desativar a proteção contra exclusão, consulte Atualizar a configuração de proteção contra exclusão.
CLI da 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.
Clonar um banco de dados
É possível clonar um banco de dados existente em um carimbo de data/hora selecionado para um novo banco de dados:
O banco de dados clonado é um novo banco de dados que será criado no mesmo local do banco de dados de origem.
Para criar um clone, o Firestore usa dados de recuperação pontual (PITR) do banco de dados de origem. O banco de dados clonado inclui todos os dados e índices.
Por padrão, o banco de dados clonado será criptografado da mesma forma que o banco de dados de origem, usando a criptografia padrão do Google ou CMEK. É possível especificar um tipo de criptografia diferente ou usar outra chave para a criptografia CMEK.
O carimbo de data/hora tem uma granularidade de um minuto e especifica um ponto no tempo no passado, no período definido pela janela de PITR:
- Se a PITR estiver ativada para seu banco de dados, selecione qualquer minuto nos últimos sete dias (ou menos, se a PITR foi ativada há menos de sete dias).
- Se a PITR não estiver ativada, você poderá selecionar qualquer minuto na última hora.
- Você pode verificar o carimbo de data/hora mais antigo que pode escolher na descrição do seu banco de dados.
Console
No console do Google Cloud , acesse a página Bancos de dados.
Clique em
Ver mais na linha da tabela do banco de dados que você quer clonar. Clique em Clone. A caixa de diálogo Criar um clone vai aparecer.Na caixa de diálogo Criar um clone, forneça parâmetros para clonar o banco de dados:
No campo Atribua um ID ao clone, um ID do banco de dados para um novo banco de dados clonado. Ele não pode estar associado a um banco de dados existente.
No campo Clonar de, selecione um ponto no tempo para usar na clonagem. O horário selecionado corresponde a um carimbo de data/hora da PITR, com granularidade de minutos.
Clique em Criar clone.
gcloud
Use o comando
gcloud alpha firestore databases clone
para clonar um banco de dados:
gcloud alpha firestore databases clone \
--source-database='SOURCE_DATABASE' \
--snapshot-time='PITR_TIMESTAMP' \
--destination-database='DESTINATION_DATABASE_ID'
Substitua:
SOURCE_DATABASE: o nome de um banco de dados atual que você quer clonar. O nome usa o formato
projects/PROJECT_ID/databases/SOURCE_DATABASE_ID
.PITR_TIMESTAMP: um carimbo de data/hora da PITR no formato RFC 3339, com granularidade de minutos. Por exemplo:
2025-06-01T10:20:00.00Z
ou2025-06-01T10:30:00.00-07:00
.DESTINATION_DATABASE_ID: um ID do banco de dados para um novo banco de dados clonado. Ele não pode estar associado a um banco de dados existente.
Exemplo:
gcloud alpha firestore databases clone \
--source-database='projects/example-project/databases/(default)' \
--snapshot-time='2025-06-01T10:20:00.00Z' \
--destination-database='projects/example-project/databases/example-dest-db'
Mudar a configuração de criptografia do banco de dados clonado
Por padrão, o banco de dados clonado terá a mesma configuração de criptografia
do banco de dados de origem. Para mudar a configuração de criptografia, use o argumento
--encryption-type
:
- (Padrão)
use-source-encryption
: use a mesma configuração de criptografia do banco de dados de origem. google-default-encryption
: use a criptografia padrão do Google.customer-managed-encryption
: use a criptografia CMEK. Especifique um ID da chave no argumento--kms-key-name
.
O exemplo a seguir mostra como configurar a criptografia CMEK para o banco de dados clonado:
gcloud alpha firestore databases clone \
--source-database='projects/example-project/databases/(default)' \
--snapshot-time='2025-06-01T10:20:00.00Z' \
--destination-database='projects/example-project/databases/example-dest-db' \
--encryption-type='customer-managed-encryption' \
--kms-key-name='projects/example-project/locations/us-central1/keyRings/example-key-ring/cryptoKeys/example-key'
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 condições do IAM no Google Cloud console.
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
: ID do projeto;EMAIL
: um endereço de e-mail que representa uma conta 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
: ID do projeto;EMAIL
: um endereço de e-mail que representa uma conta 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
: ID do projeto;EMAIL
: um endereço de e-mail que representa uma conta específica. Por exemplo,alice@example.com
.
Limitações
É possível ter no máximo 100 bancos de dados por projeto. Entre em contato com o suporte para solicitar um aumento desse limite.
A seguir
- Execute o Guia de início rápido: criar e se conectar a um banco de dados.
- Saiba mais sobre as diferenças de comportamento.
- Saiba mais sobre as métricas do Cloud Monitoring para o Firestore com compatibilidade com o MongoDB.