Modo nativo: cotas e limites

Nesta página, descrevemos as cotas de solicitação e os limites da edição Enterprise do Cloud Firestore no modo nativo.

Uso do nível sem custo financeiro

O Cloud Firestore no modo nativo oferece um nível sem custos financeiros para você começar a usar o Cloud Firestore no modo nativo sem custos financeiros. Os valores do Nível sem custos financeiros estão listados na tabela a seguir.

Os valores do nível sem custos financeiros são aplicados diariamente e redefinidos à meia-noite do horário do Pacífico.

Esse nível se aplica a apenas um banco de dados do Cloud Firestore por projeto. O primeiro banco de dados criado em um projeto sem um banco de dados de nível sem custos financeiros receberá o nível sem custos financeiros. 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.

Nível sem custo financeiro Quota
Dados armazenados 1 GiB
Unidades de leitura 50.000 por dia
Unidades de atualização em tempo real 50.000 por dia
Unidades de gravação 40.000 por dia
Transferência de dados de saída 10 GiB por mês

Limites padrão

Confira nas tabelas a seguir os limites que se aplicam ao Cloud Firestore no modo nativo. Esses são limites rígidos, a menos que especificado de outra forma.

Bancos de dados

Limite Detalhes
Número máximo de bancos de dados por projeto

100

Você pode entrar em contato com o suporte para solicitar um aumento desse limite.

Número máximo de bancos de dados com chaves de criptografia gerenciadas pelo cliente (CMEK) por projeto

0

Por padrão, a cota é 0 porque esse recurso está em uma lista de permissão. Preencha o formulário de solicitação de acesso à CMEK para pedir um aumento na cota.

Coleções, documentos e campos

Limite Detalhes
Restrições em IDs de coleções
  • Precisam ser caracteres UTF-8 válidos
  • Não podem ter mais de 1.500 bytes
  • Não podem conter uma barra (/)
  • Não podem consistir apenas em um único ponto (.) ou em pontos duplos (..)
  • Não podem corresponder à expressão regular __.*__
Profundidade máxima das subcoleções 100
Restrições em IDs de documentos
  • Precisam ser caracteres UTF-8 válidos
  • Não podem ter mais de 1.500 bytes
  • Não podem conter uma barra (/)
  • Não podem consistir apenas em um único ponto (.) ou em pontos duplos (..)
  • Não podem corresponder à expressão regular __.*__
  • Se você importar as entidades do Datastore para um banco de dados do Firestore, os IDs numéricos das entidades ficarão expostos como __id[0-9]+__
Tamanho máximo do nome de um documento 6 KiB
Tamanho máximo de um documento 1 MiB (1.048.576 bytes)
Restrições em nomes de campo
  • Precisam ser caracteres UTF-8 válidos
  • Não podem corresponder à expressão regular __.*__
Tamanho máximo de um nome de campo 1.500 bytes
Restrições em caminhos de campo
  • Os nomes de campo precisam ser separados por um único ponto (.)
  • Pode ser transmitido como uma string delimitada por pontos (.) em que cada segmento é um nome de campo simples ou um nome de campo entre aspas (definido abaixo).
Um nome de campo simples é aquele em que segue os seguintes parâmetros:
  • Contém apenas os caracteres a-z, A-Z, 0-9 e sublinhados (_)
  • Não começa com 0-9
O nome de um campo entre aspas começa e termina com o caractere de acento grave (`). Por exemplo, foo.`x&y` refere-se ao campo x&y aninhado no campo foo. Para construir um nome de campo com o caractere de acento grave, faça o escape do caractere de crase com o caractere de barra invertida (\). Por conveniência, você pode evitar nomes de campos entre aspas passando o caminho do campo como um objeto FieldPath (por exemplo, consulte JavaScript FieldPath).
Tamanho máximo de um caminho de campo 1.500 bytes
Tamanho máximo do valor de um campo 1 MiB — 89 bytes (1.048.487 bytes)
Profundidade máxima de campos em um mapa ou uma matriz

20

Os campos de mapa e matriz adicionam um nível à profundidade geral de um objeto. Por exemplo, o objeto a seguir tem uma profundidade total de três níveis:


{
  nested_map: {         #depth 1
    nested_array: [     #depth 2
      {
        foo: "bar"      #depth 3
      }
    ]
  }
}
      

Gravações e transações

Limite Detalhes
Tamanho máximo da solicitação da API 10 MiB
Prazo para uma transação 270 segundos, com tempo de expiração por inatividade de 60 segundos
Número máximo de transformações de campo que podem ser realizadas em um único documento em uma operação Commit ou em uma transação 500

Índices

Limite Detalhes
Número máximo de índices para um banco de dados

Número máximo de entradas de índice para cada documento

40.000

Número máximo de campos em um índice 100
Tamanho máximo de uma entrada de índice

7,5 KiB

Soma máxima dos tamanhos das entradas de índice de um documento

8 MiB

Time to live (TTL)

Limite Detalhes
Número máximo de configurações de campo único para um banco de dados
  • 200 quando você não tiver ativado o faturamento para seu projeto Google Cloud.

    Se você precisar de mais cota, ative o faturamento do projeto Google Cloud.

  • 1000 quando você ativar o faturamento do projeto Google Cloud.

Uma configuração no nível do campo pode conter várias configurações para o mesmo campo. Por exemplo, uma isenção de indexação de campo único e uma política de TTL no mesmo campo contam como uma configuração de campo para o limite.

Exportar/Importar

Os seguintes limites se aplicam às operações gerenciadas de importação e exportação:

Limite Detalhes
Número total máximo de solicitações de exportação e importação para um projeto permitido por minuto 20
Número máximo de exportações e importações simultâneas 50
Número máximo de filtros de ID de coleção para solicitações de exportação e importação 100

Regras de segurança

Limite Detalhes
Número máximo de chamadas exists(), get() e getAfter() por solicitação.
  • 10 para solicitações de documento único e de consulta.
  • 20 para leituras de vários documentos, transações, e gravações em lote. O limite anterior de 10 também se aplica a cada operação.

    Por exemplo, imagine que você crie uma solicitação de gravação em lote com três operações de gravação e que suas regras de segurança usem duas chamadas de acesso a documentos para validar cada gravação. Nesse caso, cada gravação usa duas das 10 chamadas de acesso, e a solicitação de gravação em lote usa seis das 20 chamadas de acesso.

Ao exceder qualquer um desses limites, ocorrerá um erro de permissão negada.

Algumas chamadas de acesso a documentos podem ser armazenadas em cache. Elas não entram na conta dos limites.

Máxima profundidade da instrução match aninhada 10
Tamanho do caminho máximo, em segmentos de caminho, permitido em um grupo de instruções match aninhadas 100
Número máximo de variáveis de captura de caminho permitidas em um conjunto de instruções match aninhadas 20
Profundidade máxima da chamada da função 20
Número máximo de argumentos de função 7
Número máximo de vinculações de variáveis let por função 10
Número máximo de chamadas de função recorrentes ou cíclicas 0 (não permitido)
Número máximo de expressões avaliadas por solicitação 1.000
Tamanho máximo de um conjunto de regras Os conjuntos de regras precisam atender a dois limites de tamanho:
  • Um limite de 256 KB no tamanho da fonte de texto do conjunto de regras publicado no console do Firebase ou na CLI usando firebase deploy.
  • Um limite de 250 KB no tamanho de um conjunto de regras compilado como resultado quando o Firebase processa uma origem e a ativa no back-end.