Cálculos de tamanho de armazenamento

Nesta página, você verá a descrição do tamanho do armazenamento de documentos, dos nomes de documentos, dos campos e das entradas de índice no Firestore.

Saiba mais sobre os custos desse armazenamento em Preços do Firestore.

Tamanho de strings

O tamanho das strings é calculado pelo número de bytes codificados em UTF-8 + 1.

Estes elementos são armazenados como strings:

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

Exemplo:

  • As tasks do ID da coleção usam 5 bytes + 1 byte, totalizando 6 bytes.
  • A description do nome do campo usa 11 bytes + 1 byte, totalizando 12 bytes.

Tamanho de IDs de documento

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

Tamanho do nome do documento

O tamanho de um nome de documento é a soma dos seguintes valores:

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

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

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

Tamanho do valor de campo

Na tabela a seguir, você vê o tamanho dos valores de campo por tipo.

Tipo Tamanho
Matriz A soma dos tamanhos dos valores da matriz
Booleano 1 byte
Bytes Comprimento do byte
Data e hora 8 bytes
Número de ponto flutuante 8 bytes
Ponto geográfico 16 bytes
Número inteiro 8 bytes
Mapa O tamanho do mapa, calculado da mesma maneira 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 do nome do campo done
  • 1 byte do valor booleano

Tamanho do documento

O tamanho de um documento é a soma dos seguintes valores:

Este exemplo é para um documento na subcoleção users/jeff/tasks com um ID de 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 byte
"type": "Personal" 14:
5 do nome do campo + 9 do valor da string do campo
"done": false 6:
5 do nome do campo + 1 do valor booleano do campo
"priority": 1 17:
9 do nome do campo + 8 do valor inteiro do campo
"description": "Learn Cloud Firestore" 34:
12 do nome do campo + 22 do valor da string do campo

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

  • 44 bytes do nome do documento
  • 71 bytes dos campos
  • 32 bytes extras

Tamanho de entradas de índice

O tamanho de entradas de índice é calculado da seguinte forma nos índices de campo único e compostos.

Tamanho da entrada de índice de campo único

O tamanho de uma entrada de índice de campo único depende se o escopo do índice foi delimitado a uma coleção ou a um grupo de coleções.

Escopo da coleção

O tamanho de uma entrada em um índice de campo único com o escopo delimitado a uma coleção é a soma dos seguintes itens:

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

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

O tamanho total da entrada em um índice de campo único com escopo de coleção que indexa o campo done é de 109 bytes:

  • 44 bytes do nome do documento users/jeff/tasks/my_task_id
  • 27 bytes do nome do documento pai users/jeff
  • 5 bytes do nome do campo done
  • 1 byte do valor de campo booleano
  • 32 bytes extras

Escopo do grupo de coleções

O tamanho de uma entrada em um índice de campo único com o escopo delimitado a um grupo de coleções é a soma dos seguintes itens:

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

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

O tamanho total da entrada em um índice de campo único com escopo de grupo de coleções que indexa o campo done é de 98 bytes.

  • 44 bytes do nome do documento users/jeff/tasks/my_task_id
  • 5 bytes do nome do campo done
  • 1 byte do valor de campo booleano
  • 48 bytes extras

Tamanho da entrada de índice composto

O tamanho de uma entrada em um índice composto depende se o escopo do índice foi delimitado a uma coleção ou a um grupo de coleções.

Escopo da coleção

O tamanho de uma entrada de índice composto com escopo delimitado a uma coleção é a soma dos seguintes itens:

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

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

O tamanho total da entrada em um índice composto com escopo de coleção que indexa os campos done e priority (ambos crescentes) é de 112 bytes:

  • 44 bytes do nome do documento users/jeff/tasks/my_task_id
  • 27 bytes do nome do documento pai users/jeff
  • 1 byte do valor de campo booleano
  • 8 bytes do valor de campo de número inteiro
  • 32 bytes extras

Escopo do grupo de coleções

O tamanho de uma entrada de índice composto com escopo delimitado a um grupo de coleções é a soma dos seguintes itens:

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

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

O tamanho total da entrada em um índice composto com escopo de grupo coleção que indexa os campos done e priority (ambos crescentes) é de 85 bytes:

  • 44 bytes do nome do documento users/jeff/tasks/my_task_id
  • 1 byte do valor de campo booleano
  • 8 bytes do valor de campo de número inteiro
  • 32 bytes extras

A seguir

Saiba mais sobre os preços do Firestore.