Cálculos do tamanho de armazenamento

Esta página descreve o tamanho de armazenamento de documentos, nomes de documentos, campos e entradas de índice no Firestore.

Pode saber mais sobre os custos deste armazenamento em Preços do Firestore.

Tamanho da string

Os tamanhos das strings são calculados como o número de bytes com codificação UTF-8 + 1.

Os seguintes elementos são armazenados como strings:

  • IDs das coleções
  • IDs de documentos de string
  • Nomes dos documentos
  • Nomes dos campos
  • Valores de campos de string

Por exemplo:

  • O ID de recolha tasks usa 5 bytes + 1 byte, para um total de 6 bytes.
  • O nome do campo description usa 11 bytes + 1 byte, para um total de 12 bytes.

Tamanho do ID do documento

O tamanho de um ID de documento é o tamanho da string para um ID de string ou 8 bytes para um ID de número inteiro.

Tamanho do nome do documento

O tamanho do nome de um documento é a soma do seguinte:

  • O tamanho de cada ID da coleção e ID do documento no caminho para o documento
  • 16 bytes adicionais

Para um documento na subcoleção users/jeff/tasks com um ID do documento de string de my_task_id, o tamanho do nome do documento é de 6 + 5 + 6 + 11 + 16 = 44 bytes:

  • 6 bytes para o users ID da coleção
  • 5 bytes para o ID do documento jeff
  • 6 bytes para o tasks ID da coleção
  • 11 bytes para o my_task_id ID do documento
  • 16 bytes adicionais

Tamanho do valor do campo

A tabela seguinte mostra o tamanho dos valores dos campos por tipo.

Tipo Tamanho
Matriz A soma dos tamanhos dos respetivos valores
Booleano 1 byte
Bytes Comprimento em bytes
Data e hora 8 bytes
Número de vírgula flutuante 8 bytes
Ponto geográfico 16 bytes
Número inteiro 8 bytes
Mapa O tamanho do mapa, calculado da mesma forma que o tamanho do documento
Nulo 1 byte
Referência O tamanho do nome do documento
String de texto Número de bytes codificados em UTF-8 + 1
Vetor 8 bytes por dimensão

Por exemplo, um campo booleano denominado done usaria 6 bytes:

  • 5 bytes para o nome do campo done
  • 1 byte para o valor booleano

Tamanho do documento

O tamanho de um documento é a soma do seguinte:

Este exemplo destina-se a um documento na subcoleção users/jeff/tasks com um ID do documento de string de my_task_id:

 - "type": "Personal"
 - "done": false
 - "priority": 1
 - "description": "Learn Cloud Firestore"

O tamanho total dos campos é de 71 bytes:

Nome e valor do campo Tamanho do campo em bytes
"type": "Personal" 14
5 para o nome do campo + 9 para o valor da string do campo
"done": false 6
5 para o nome do campo + 1 para o valor booleano do campo
"priority": 1 17
9 para o nome do campo + 8 para o valor inteiro do campo
"description": "Learn Cloud Firestore" 34
12 para o nome do campo + 22 para o valor da string do campo

Assim, o tamanho do documento é de 44 + 71 + 32 = 147 bytes:

  • 44 bytes para o nome do documento
  • 71 bytes para os campos
  • 32 bytes adicionais

Tamanho da entrada de índice

Os tamanhos das entradas de índice são calculados da seguinte forma para índices de campo único e compostos.

Tamanho da entrada do índice de campo único

O tamanho de uma entrada de índice de campo único depende de se um índice está no âmbito de uma coleção ou de um grupo de coleções.

Âmbito da recolha

O tamanho de uma entrada num índice de campo único com âmbito de coleção é a soma de:

Considere um documento na subcoleção users/jeff/tasks com um ID do documento de string de my_task_id:

 - "type": "Personal"
 - "done": false
 - "priority": 1
 - "description": "Learn Cloud Firestore"

Para um índice de campo único com âmbito de recolha que indexa o campo done, o tamanho total da entrada neste índice é de 109 bytes:

  • 44 bytes para o nome do documento users/jeff/tasks/my_task_id
  • 27 bytes para o nome do documento do documento principal users/jeff
  • 5 bytes para o nome do campo done
  • 1 byte para o valor do campo booleano
  • 32 bytes adicionais

Âmbito do grupo de recolha

O tamanho de uma entrada num índice de campo único com âmbito do grupo de coleções é a soma do seguinte:

Considere um documento na subcoleção users/jeff/tasks com um ID do documento de string de my_task_id:

 - "type": "Personal"
 - "done": false
 - "priority": 1
 - "description": "Learn Cloud Firestore"

Para um índice de campo único com âmbito de grupo de coleções que indexa o campo done, o tamanho total da entrada neste índice é de 98 bytes:

  • 44 bytes para o nome do documento users/jeff/tasks/my_task_id
  • 5 bytes para o nome do campo done
  • 1 byte para o valor do campo booleano
  • 48 bytes adicionais

Tamanho da entrada do índice composto

O tamanho de uma entrada num índice composto depende de o índice estar no âmbito de uma coleção ou de um grupo de coleções.

Âmbito da recolha

O tamanho de uma entrada de índice num índice composto com âmbito de coleção é a soma do seguinte:

Considere um documento na subcoleção users/jeff/tasks com um ID do documento de string de my_task_id:

 - "type": "Personal"
 - "done": false
 - "priority": 1
 - "description": "Learn Cloud Firestore"

Para um índice composto com âmbito de recolha que indexa os campos done e priority (ambos ascendentes), o tamanho total da entrada neste índice é de 112 bytes:

  • 44 bytes para o nome do documento users/jeff/tasks/my_task_id
  • 27 bytes para o nome do documento do documento principal users/jeff
  • 1 byte para o valor do campo booleano
  • 8 bytes para o valor do campo inteiro
  • 32 bytes adicionais

Âmbito do grupo de recolha

O tamanho de uma entrada de índice num índice composto com âmbito do grupo de recolha é a soma do seguinte:

Considere um documento na subcoleção users/jeff/tasks com um ID do documento de string de my_task_id:

 - "type": "Personal"
 - "done": false
 - "priority": 1
 - "description": "Learn Cloud Firestore"

Para um índice composto com âmbito de grupo de recolha que indexa os campos done e priority (ambos ascendentes), o tamanho total da entrada de índice neste índice é de 85 bytes:

  • 44 bytes para o nome do documento users/jeff/tasks/my_task_id
  • 1 byte para o valor do campo booleano
  • 8 bytes para o valor do campo inteiro
  • 32 bytes adicionais

O que se segue?

Saiba mais sobre os preços do Firestore.