Quotas e limites

Esta página identifica as quotas e os limites de pedidos para o Firestore.

Quota gratuita

O Firestore oferece uma quota gratuita que lhe permite começar sem custos financeiros. Se precisar de mais quota, tem de ativar a faturação para o seu Google Cloud projeto.

As quotas são aplicadas diariamente e repostas à meia-noite (hora do Pacífico).

A tabela seguinte resume os valores da quota gratuita:

Nível gratuito Quota
Dados armazenados 1 GiB
Leituras do documento 50 000 por dia
Escritas do documento 20 000 por dia
Eliminações do documento 20 000 por dia
Transferência de dados de saída 10 GiB por mês

As seguintes operações e funcionalidades não incluem a utilização gratuita. Tem de ativar a faturação para usar estas funcionalidades:

  • Eliminações de TTL
  • Dados PITR
  • Faça uma cópia de segurança dos dados
  • Operações de restauro
  • Operações de clonagem

Para mais informações sobre a faturação destas funcionalidades, consulte os preços de armazenamento.

Limites padrão

As tabelas seguintes mostram os limites que se aplicam ao Firestore. Estes são limites rígidos, salvo indicação em contrário.

Bases de dados

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

100

Pode contactar o apoio técnico para pedir um aumento deste limite.

Número máximo de bases de dados com chaves de encriptação geridas pelo cliente (CMEK) por projeto

0

Por predefinição, a quota é 0 porque esta funcionalidade está atrás de uma lista de autorizações. Pode pedir o aumento da quota preenchendo o formulário de pedido de acesso à CMEK.

Coleções, documentos e campos

Limite Detalhes
Restrições relativas aos IDs de coleções
  • Têm de ser carateres UTF-8 válidos
  • Não pode ter mais de 1500 bytes
  • Não pode conter uma barra (/)
  • Não pode consistir apenas num único ponto (.) ou dois pontos (..)
  • Não é possível encontrar uma correspondência com a expressão regular __.*__
Profundidade máxima de subcoleções 100
Restrições nos IDs de documentos
  • Têm de ser carateres UTF-8 válidos
  • Não pode ter mais de 1500 bytes
  • Não pode conter uma barra (/)
  • Não pode consistir apenas num único ponto (.) ou dois pontos (..)
  • Não é possível encontrar uma correspondência com a expressão regular __.*__
  • Se importar entidades do Datastore para uma base de dados do Firestore, os IDs de entidades numéricos são expostos como __id[0-9]+__
Tamanho máximo para um nome de documento 6 KiB
Tamanho máximo de um documento 1 MiB (1 048 576 bytes)
Restrições nos nomes dos campos
  • Têm de ser carateres UTF-8 válidos
  • Não é possível encontrar uma correspondência com a expressão regular __.*__
Tamanho máximo de um nome de campo 1500 bytes
Restrições nos caminhos dos campos
  • Tem de separar os nomes dos campos com um único ponto (.)
  • Pode ser transmitido como uma string de segmentos 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 todas as seguintes afirmações são verdadeiras:
  • Contém apenas os carateres a-z, A-Z, 0-9 e sublinhado (_)
  • Não começa por 0-9
Um nome de campo entre aspas começa e termina com o caráter de acento grave (`). Por exemplo, foo.`x&y` refere-se ao campo x&y aninhado no campo foo. Para criar um nome de campo com o caráter acento grave, escape o caráter acento grave com o caráter barra invertida (\). Para maior comodidade, pode evitar nomes de campos entre aspas transmitindo o caminho do campo como um objeto FieldPath (por exemplo, consulte FieldPath em JavaScript).
Tamanho máximo de um caminho de campo 1500 bytes
Tamanho máximo de um valor de campo 1 MiB - 89 bytes (1 048 487 bytes)
Profundidade máxima dos campos num mapa ou numa matriz

20

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


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

Escritas e transações

Além destes limites, também deve consultar as práticas recomendadas para criar designs em grande escala.

Limite Detalhes
Tamanho máximo do pedido de API 10 MiB
Limite de tempo para uma transação 270 segundos, com um tempo de expiração de inatividade de 60 segundos
Número máximo de transformações de campos que podem ser realizadas num único documento numa operação Commit ou numa transação 500

Índices

Os seguintes limites aplicam-se aos índices de campo único e aos índices compostos:

Esta página identifica as quotas e os limites de pedidos para o Firestore.

Limite Detalhes
Número máximo de índices compostos para uma base de dados
Número máximo de configurações de campo único para uma base de dados

Uma configuração ao 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.

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

40 000

O número de entradas de índice é a soma do seguinte para um documento:

  • O número de entradas de índice de campo único
  • O número de entradas de índice composto

Para ver como o Firestore transforma um documento e um conjunto de índices em entradas de índice, consulte este exemplo de contagem de entradas de índice.

Número máximo de campos num índice composto 100
Tamanho máximo de uma entrada de índice

7,5 KiB

Para ver como o Firestore calcula o tamanho da entrada do índice, consulte o tamanho da entrada do índice.

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

8 MiB

O tamanho total é a soma do seguinte para um documento:

  • A soma do tamanho das entradas de índice de campo único de um documento
  • A soma do tamanho das entradas do índice composto de um documento
  • Tamanho máximo de um valor de campo indexado

    1500 bytes

    Os valores dos campos com mais de 1500 bytes são truncados. As consultas que envolvem valores de campos truncados podem devolver resultados inconsistentes.

    Tempo de vida (TTL)

    Limite Detalhes
    Número máximo de configurações de campo único para uma base de dados

    Uma configuração ao 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.

    Exportação/importação

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

    Limite Detalhes
    Número total máximo de pedidos de exportação e importação para um projeto permitidos 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ções para pedidos de exportação e importação 100

    Regras de segurança

    Limite Detalhes
    Número máximo de chamadas exists(), get() e getAfter() por pedido
    • 10 para pedidos de documentos únicos e pedidos de consultas.
    • 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 cria um pedido de gravação em lote com 3 operações de gravação e que as suas regras de segurança usam 2 chamadas de acesso a documentos para validar cada gravação. Neste caso, cada gravação usa 2 das suas 10 chamadas de acesso e o pedido de gravação em lote usa 6 das suas 20 chamadas de acesso.

    Se exceder qualquer um dos limites, recebe um erro de acesso negado.

    Algumas chamadas de acesso a documentos podem ser colocadas em cache e as chamadas em cache não contam para os limites.

    Profundidade máxima da declaração match aninhada 10
    Comprimento máximo do caminho, em segmentos do caminho, permitido num conjunto de declarações aninhadas match 100
    Número máximo de variáveis de captura de caminho permitidas num conjunto de declarações match aninhadas 20
    Profundidade máxima de chamadas de funções 20
    Número máximo de argumentos de funções 7
    Número máximo de associações de variáveis let por função 10
    Número máximo de chamadas de funções recursivas ou cíclicas 0 (não permitido)
    Número máximo de expressões avaliadas por pedido 1000
    Tamanho máximo de um conjunto de regras Os conjuntos de regras têm de obedecer a dois limites de tamanho:
    • Um limite de 256 KB no tamanho da origem do texto do conjunto de regras publicado a partir da consola do Firebase ou da CLI através de firebase deploy.
    • Um limite de 250 KB no tamanho do conjunto de regras compilado que resulta quando o Firebase processa a origem e a torna ativa no back-end.

    Monitorizar a utilização

    Pode ver a sua utilização do Firestore nas páginas Quotas da API Cloud Firestore e Quotas do App Engine.