Esta página descreve como criar, atualizar e eliminar bases de dados do Firestore no modo Datastore. Pode criar várias bases de dados do Firestore por projeto. Pode usar várias bases de dados para configurar ambientes de produção e de testes, isolar dados de clientes e para a regionalização de dados.
A base de dados (default)
Se não especificar uma base de dados, as bibliotecas de cliente do modo Datastore e a CLI Google Cloud estabelecem ligação à base de dados (default)
por predefinição.
Funções necessárias
Para criar e gerir bases de dados, precisa da função de gestão de identidade e acesso Owner
ou Datastore Owner
. Estas funções concedem as autorizações necessárias.
Autorizações necessárias
Para gerir bases de dados, precisa das seguintes autorizações:
- Crie uma base de dados:
datastore.databases.create
- Ler a configuração da base de dados:
datastore.databases.getMetadata
- Configure uma base de dados:
datastore.databases.update
- Elimine uma base de dados:
datastore.databases.delete
- Clone uma base de dados:
datastore.databases.clone
Crie uma base de dados
Para criar uma base de dados, use um dos seguintes métodos:
Consola
-
Na Google Cloud consola, aceda à página Bases de dados.
- Clique em Criar base de dados.
- Selecione um modo de base de dados. Clique em Continuar.
- Configure a base de dados. Introduza um ID da base de dados. Selecione uma localização. Clique em Criar base 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 o seguinte:
- DATABASE_ID: um ID da base de dados válido.
- LOCATION: o nome de uma multirregião ou região do modo Datastore.
- DATABASE_TYPE:
firestore-native
para o modo nativo oudatastore-mode
para o modo Datastore.
--delete-protection
é uma flag opcional para ativar a proteção contra eliminação.
Não pode eliminar uma base de dados com a proteção contra eliminação ativada até
desativar esta definição. Esta definição está desativada por predefinição.
Para adicionar etiquetas
à base de dados, use a flag
--tags
. Por exemplo:
--tags=123/environment=production,123/costCenter=marketing
--tags=tagKeys/333=tagValues/444
Firebase CLI
firebase firestore:databases:create DATABASE_ID \ --location=LOCATION \ [--delete-protection DELETE_PROTECTION_ENABLEMENT]
Substitua o seguinte:
- DATABASE_ID: um ID da base de dados válido.
- LOCATION: o nome de uma região ou multirregião do modo Datastore.
- DELETE_PROTECTION_ENABLEMENT:
ENABLED
ouDISABLED
.
A base de dados criada está sempre no modo nativo do Firestore.
--delete-protection
é um argumento opcional
para ativar a proteção contra eliminação. Não pode eliminar uma base de dados com a proteção contra eliminação ativada até desativar esta definição. Esta definição está
desativada por predefiniçã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 o seguinte:
- DATABASE_ID: um ID da base de dados válido.
- LOCATION: o nome de uma região ou multirregião do modo Datastore.
- 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 eliminação. Não pode eliminar uma base de dados com a proteção contra eliminação ativada
até desativar esta definição. Esta definição está desativada por predefinição.
ID da base de dados
Os IDs de base de dados válidos incluem (default)
e IDs em conformidade com o seguinte:
- Inclui apenas letras, números e carateres de hífen (
-
). - As letras têm de ser minúsculas.
- O primeiro caráter tem de ser uma letra.
- O último caráter tem de ser uma letra ou um número.
- Mínimo de 4 carateres.
- Um máximo de 63 carateres.
- Não pode ser um UUID nem assemelhar-se a um UUID. Por exemplo, não use um ID como
f47ac10b-58cc-0372-8567-0e02b2c3d479
.
Se eliminar uma base de dados, não pode voltar a usar imediatamente o ID da base de dados até 5 minutos depois.
Elimine a proteção
Use a proteção contra eliminação para evitar a eliminação acidental de uma base de dados. Não pode eliminar uma base de dados com a proteção contra eliminação ativada até desativar a proteção contra eliminação. A proteção contra eliminação está desativada por predefinição. Pode ativar a proteção contra eliminação quando cria a base de dados ou pode atualizar uma configuração da base de dados para ativar a proteção contra eliminação.
Aceda a uma base de dados com nome através de uma biblioteca cliente
Uma base de dados com nome inclui qualquer base de dados que não se chame (default)
. Por predefinição,
os SDKs Firebase e as bibliotecas cliente da API Google ligam-se à (default)
base de dados do Firestore num projeto. Para criar um cliente associado a uma base de dados com nome, defina o ID da base de dados quando instanciar um cliente.
Apresentar bases de dados
Use um dos seguintes métodos para listar as suas bases de dados:
Consola
Na Google Cloud consola, aceda à página Bases de dados.
gcloud
Use o comando
gcloud firestore databases list
para listar todas as bases de dados no seu projeto.
gcloud firestore databases list
Firebase CLI
Use o comando firebase firestore:databases:list
para listar todas as bases de dados no seu projeto.
firebase firestore:databases:list
Veja os detalhes da base de dados
Para ver detalhes sobre uma única base de dados, use um dos seguintes métodos:
gcloud
Use o comando gcloud firestore databases describe
:
gcloud firestore databases describe --database=DATABASE_ID
Firebase CLI
Use o comando firebase firestore:databases:get
:
firebase firestore:databases:get DATABASE_ID
Substitua DATABASE_ID por um ID da base de dados.
Atualize a configuração da base de dados
Para atualizar as definições de configuração de uma base de dados, use o comando
gcloud firestore databases update
.
Use este comando para alterar o tipo de base de dados ou ativar/desativar a proteção contra eliminação.
Altere o tipo de base de dados
Para atualizar o tipo de uma base de dados, use o comando
gcloud firestore databases update
com a flag --type=
. Só pode alterar o tipo se a base de dados estiver vazia.
gcloud
gcloud firestore databases update --database=DATABASE_ID \ --type=DATABASE_TYPE
Substitua o seguinte:
- DATABASE_ID: um ID da base de dados.
- DATABASE_TYPE:
firestore-native
para o modo nativo oudatastore-mode
para o modo de armazenamento de dados.
Atualize a definição de proteção contra eliminação
Para ativar a proteção contra eliminação numa base de dados, use o comando
gcloud firestore databases update
com a flag --delete-protection
. Por exemplo:
gcloud
gcloud firestore databases update --database=DATABASE_ID --delete-protection
Substitua DATABASE_ID por um ID da base de dados.
Para desativar a proteção contra eliminação numa base de dados, use o comando
gcloud firestore databases update
com a flag --no-delete-protection
. Por exemplo:
gcloud
gcloud firestore databases update --database=DATABASE_ID --no-delete-protection
Substitua DATABASE_ID por um ID da base de dados.
Elimine uma base de dados
Para eliminar uma base de dados, use a consola ou a ferramenta de linha de comandos.
Se a base de dados tiver a definição de proteção contra eliminação ativada, tem de desativar primeiro a proteção contra eliminação.
Se a base de dados contiver dados de pesquisa do App Engine ou entidades blob, tem de eliminar esses dados primeiro.
A eliminação de uma base de dados não elimina automaticamente os acionadores do Eventarc dessa base de dados. O acionador deixa de enviar eventos, mas continua a existir até eliminar o acionador.
A eliminação de uma base de dados não incorre em custos para operações de eliminação.
Consola
-
Na Google Cloud consola, aceda à página Bases de dados.
- Clique em Ver mais na linha da tabela da base de dados que quer eliminar. Clique em Eliminar. É apresentada uma caixa de diálogo.
Na caixa de diálogo Eliminar base de dados?, confirme a eliminação escrevendo o ID da base de dados no campo de texto. Clique em Eliminar. A consola informa-o sobre o êxito ou a falha da operação.
Se a operação falhar, veja os detalhes da base de dados e verifique se a proteção contra eliminação está desativada. Para desativar a proteção contra eliminação, consulte o artigo Atualize a definição de proteção contra eliminação.
gcloud
Use o comando `gcloud firestore databases delete`.
gcloud firestore databases delete --database=DATABASE_ID
Substitua DATABASE_ID pelo ID da base de dados a eliminar. Para eliminar a base de dados predefinida, use o ID '(default)'
Clone uma base de dados
Pode clonar uma base de dados existente num momento específico selecionado para uma nova base de dados:
A base de dados clonada é uma nova base de dados que vai ser criada na mesma localização que a base de dados de origem.
Para fazer um clone, o Firestore usa dados de recuperação num determinado momento (PITR) da base de dados de origem. A base de dados clonada inclui todos os dados e índices.
Por predefinição, a base de dados clonada é encriptada da mesma forma que a base de dados de origem, através da encriptação predefinida da Google ou da encriptação CMEK. Pode especificar um tipo de encriptação diferente ou usar uma chave diferente para a encriptação CMEK.
A data/hora tem uma granularidade de um minuto e especifica um ponto no tempo no passado, no período definido pela janela PITR:
- Se a PITR estiver ativada para a sua base de dados, pode selecionar qualquer minuto nos últimos 7 dias (ou menos, se a PITR tiver sido ativada há menos de 7 dias).
- Se a PITR não estiver ativada, pode selecionar qualquer minuto na última hora.
- Pode verificar a data/hora mais antiga que pode escolher na descrição da base de dados.
Consola
Na Google Cloud consola, aceda à página Bases de dados.
Clique em
Ver mais na linha da tabela da base de dados que quer clonar. Clique em Clonar. É apresentada a caixa de diálogo Criar um clone.Na caixa de diálogo Crie um clone, indique os parâmetros para clonar a base de dados:
No campo Atribua um ID ao clone, introduza um ID da base de dados para uma nova base de dados clonada. Este ID da base de dados não pode estar associado a uma base de dados existente.
No campo Clonar a partir de, selecione um ponto no tempo a usar para a clonagem. A hora selecionada corresponde a uma data/hora de PITR, com granularidade de minutos.
Clique em Criar clone.
gcloud
Use o comando
gcloud alpha firestore databases clone
para clonar uma base de dados:
gcloud alpha firestore databases clone \
--source-database='SOURCE_DATABASE' \
--snapshot-time='PITR_TIMESTAMP' \
--destination-database='DESTINATION_DATABASE_ID'
Substitua o seguinte:
SOURCE_DATABASE: o nome da base de dados de uma base de dados existente que quer clonar. O nome usa o formato
projects/PROJECT_ID/databases/SOURCE_DATABASE_ID
.PITR_TIMESTAMP: a data/hora de 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 da base de dados para uma nova base de dados clonada. Este ID da base de dados não pode estar associado a uma base 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'
Altere a configuração de encriptação da base de dados clonada
Por predefinição, a base de dados clonada tem a mesma configuração de encriptação que a base de dados de origem. Para alterar a configuração de encriptação, use o argumento
--encryption-type
:
- (Predefinição)
use-source-encryption
: use a mesma configuração de encriptação que a base de dados de origem. google-default-encryption
: use a encriptação predefinida da Google.customer-managed-encryption
: use a encriptação CMEK. Especifique um ID da chave no argumento--kms-key-name
.
O exemplo seguinte mostra como configurar a encriptação CMEK para a base de dados clonada:
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'
Configure autorizações de acesso por base de dados
Pode usar as condições de gestão de identidades e acessos para configurar autorizações de acesso ao nível da base de dados. Os exemplos seguintes usam a CLI Google Cloud para atribuir acesso condicional a uma ou mais bases de dados. Também pode definir condições da IAM na Google Cloud consola.
Veja as políticas IAM existentes
gcloud projects get-iam-policy PROJECT_ID
Defina PROJECT_ID
como o ID do seu projeto.
Conceda acesso a uma base 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 projetoEMAIL
: um endereço de email que representa uma Conta Google específica. Por exemplo,alice@example.com
.DATABASE_ID
: um ID da base de dados.TITLE
: um título opcional para a expressão.DESCRIPTION
: uma descrição opcional da expressão.
Conceder acesso a tudo, exceto a uma base 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 projetoEMAIL
: um endereço de email que representa uma Conta Google específica. Por exemplo,alice@example.com
.DATABASE_ID
: um ID da base de dados.TITLE
: um título opcional para a expressão.DESCRIPTION
: uma descrição opcional da expressão.
Remova políticas para 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 projetoEMAIL
: um endereço de email que representa uma Conta Google específica. Por exemplo,alice@example.com
.
Cloud Monitoring
As métricas do Firestore são comunicadas em dois recursos monitorizados.
Pode inspecionar métricas agregadas ao nível da base de dados consultando firestore.googleapis.com/Database
. As métricas comunicadas em firestore_instance
são agregadas ao nível do projeto.
Limitações
- Pode ter um máximo de 100 bases de dados por projeto. Pode contactar o apoio técnico para solicitar um aumento deste limite.
- Não pode eliminar a sua base de dados do
(default)
se contiver dados de pesquisa do GAE. Use a API de eliminação de índice para eliminar dados de pesquisa do GAE. Se eliminou recentemente dados da Pesquisa do GAE, pode haver um período de espera antes de poder eliminar a base de dados. - Não pode eliminar a sua base de dados
(default)
se contiver entidades blob. Use a API Blobstore delete para eliminar dados do Blobstore. Pode verificar se a sua base de dados(default)
tem dados do Blobstore executando a seguinte consulta GQL na consola Google Cloud :SELECT * FROM __BlobInfo__
. - Não pode reutilizar um ID da base de dados até 5 minutos após a eliminação.
- A Cloud Function v1 não suporta bases de dados com nome do Firestore. Use os acionadores do Cloud Firestore (2.ª geração) para configurar eventos para bases de dados com nome.
- Os acionadores de funções do Firestore v1 e os acionadores de eventos do Firestore podem deixar de funcionar após a eliminação da base de dados, mesmo que seja criada uma nova base de dados com o mesmo nome.