Crie e faça a gestão de bases de dados

Esta página descreve como criar, atualizar e eliminar bases de dados do Firestore com compatibilidade com o MongoDB. 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.

Utilização do nível gratuito

O Firestore oferece um nível gratuito que lhe permite começar sem custos.

O nível gratuito aplica-se apenas a uma base de dados do Firestore por projeto. A primeira base de dados criada num projeto sem uma base de dados de nível gratuito recebe o nível gratuito. Se a base de dados com o nível gratuito aplicado for eliminada, a base de dados seguinte criada recebe o nível gratuito.

Antes de começar

Tem de concluir os seguintes passos antes de criar uma base de dados:

  1. Verify that billing is enabled for your Google Cloud project.

  2. Atribua as funções de gestão de identidade e acesso adequadas, conforme descrito na secção seguinte.

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 do Firestore com compatibilidade com o MongoDB, use um dos seguintes métodos:

Google Cloud consola
  1. Na Google Cloud consola, aceda à página Bases de dados.

    Aceda a Bases de dados

  2. Clique em Criar uma base de dados do Firestore.
  3. Introduza um ID da base de dados.
  4. Selecione a edição Enterprise.
  5. Selecione uma localização para a base de dados.
  6. (Opcional) Se precisar de personalizar a encriptação, clique em Mostrar opções de encriptação e configure as opções de encriptação.
  7. Clique em Criar base de dados.
Firebase CLI
firebase firestore:databases:create --edition EDITION DATABASE_ID \
--location=LOCATION
CLI gcloud

Use o comando gcloud firestore databases create e defina --edition=enterprise.

gcloud firestore databases create \
--database=DATABASE_ID \
--location=LOCATION \
--edition=enterprise

Substitua o seguinte:

Para ativar a proteção contra eliminação, adicione a flag --delete-protection. 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.

gcloud firestore databases create \
--database=DATABASE_ID \
--location=LOCATION \
--edition=enterprise \
--delete-protection

Para adicionar etiquetas à base de dados, use a flag --tags. Por 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 o seguinte:

Para ativar a proteção contra eliminação, defina delete_protection_state como DELETE_PROTECTION_ENABLED. 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 IDs que estão 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. A proteção contra eliminação funciona da seguinte forma:

  • 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.

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.

Aceda a Bases de dados

CLI gcloud

Use o comando gcloud firestore databases list para listar todas as bases de dados no seu projeto.

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

Google Cloud consola
  1. Na Google Cloud consola, aceda à página Bases de dados.

    Aceda a Bases de dados

  2. Selecione uma base de dados na lista de bases de dados.
CLI gcloud

Use o comando gcloud firestore databases describe:

gcloud firestore databases describe --database=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, ativar ou desativar a proteção contra eliminação.

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:

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

CLI 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. A eliminação de uma base de dados não incorre em custos para operações de eliminação.

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.

Google Cloud consola
  1. Na Google Cloud consola, aceda à página Bases de dados.

    Aceda a Bases de dados

  2. Clique em Ver mais na coluna Ações da base de dados que quer eliminar. Clique em Eliminar. É apresentada uma caixa de diálogo.
  3. 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.

CLI 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.

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

  1. Na Google Cloud consola, aceda à página Bases de dados.

    Aceda a Bases de dados

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

  3. Na caixa de diálogo Crie um clone, indique os parâmetros para clonar a base de dados:

    1. 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.

    2. 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 uma granularidade de minutos.

  4. 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 ou 2025-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 projeto
  • EMAIL: um endereço de email que representa uma conta 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 projeto
  • EMAIL: um endereço de email que representa uma conta 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 projeto
  • EMAIL: um endereço de email que representa uma conta específica. Por exemplo, alice@example.com.

Limitações

Pode ter um máximo de 100 bases de dados por projeto. Pode contactar o apoio técnico para pedir um aumento deste limite.

O que se segue?