Ir para o console

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 Cloud Firestore.

Você pode saber mais sobre os custos desse armazenamento em Preços do Cloud 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:

  • nomes de documentos
  • códigos de coleções
  • nomes de campos
  • valores de campos de strings

Por exemplo:

  • O código da coleção Task usa 4 bytes + 1 byte, para um total de 5 bytes.
  • O nome do campo description usa 11 bytes + 1 byte, para um total de 12 bytes.

Tamanho do nome do documento

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

  • tamanho da string completa do nome do documento (códigos de inteiros têm 8 bytes cada)
  • 16 bytes adicionais

Para um documento em uma coleção chamada Task com um código numérico:

Task id:5730082031140864

O tamanho é 5 + 8 + 16 = 29 bytes:

  • 5 bytes do código da coleção Task
  • 8 bytes do código numérico
  • 16 bytes adicionais

Para um documento em uma coleção chamada Task com um código de string:

Task name:my_task_id

O tamanho é 5 + 11 + 16 = 32 bytes:

  • 5 bytes do código da coleção Task
  • 11 bytes do código da string my_task_id
  • 16 bytes adicionais

Tamanho de campo

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

  • tamanho da string do nome do campo
  • tamanho do valor do campo

A tabela a seguir mostra 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

Por exemplo, um campo booleano chamado 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 em uma coleção de Task com um código numérico:

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

O tamanho total dos campos é de 70 bytes:

Nome e valor do campo Tamanho do campo em bytes
"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 do inteiro do campo
"description": "Learn Cloud Firestore" 33
12 do nome do campo + 21 do valor da string do campo

Assim, o tamanho do documento é 29 + 70 + 32 = 131 bytes:

  • 29 bytes do nome do documento
  • 70 bytes dos campos
  • 32 bytes adicionais

Tamanho de entradas de índice

O tamanho de uma entrada de índice é a soma dos seguintes valores:

  • tamanho do nome de documento do documento indexado
  • soma dos tamanhos de campos indexados
  • tamanho do código da coleção do documento indexado se o índice for do tipo automático (não se aplica a índices compostos)
  • 32 bytes adicionais

Esse é o mesmo padrão usado para o tamanho de um documento, exceto que, em vez da inclusão de todos os campos do documento, somente os campos exigidos pelo índice são armazenados. Além disso, o tamanho de uma entrada de índice nunca excederá 1.500 bytes.

Por exemplo, usando o mesmo documento acima:

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

Se done é um campo indexado, a entrada do índice automático para o único índice done do campo consiste no nome do documento, no nome e valor do campo done, no código da coleção Task e em 32 bytes de uma entrada de índice. O tamanho total dessa entrada do índice é de 72 bytes:

  • 29 bytes do nome do documento
  • 6 bytes do valor booleano e nome do campo done
  • 5 bytes do código da coleção Task
  • 32 bytes adicionais

Por padrão, o Cloud Firestore predefine automaticamente dois índices de campo único para cada campo de cada documento, um em ordem crescente e outro em ordem decrescente. Portanto, esse documento teria uma entrada de índice de 72 bytes no índice done de campo único em ordem crescente, e teria uma entrada de índice de 72 bytes no índice done de campo único em ordem decrescente.

Usando o mesmo documento, considere um índice composto que usa os campos done e priority, ambos em ordem crescente. O tamanho total dessa entrada de índice é de 84 bytes:

  • 29 bytes do nome do documento
  • 6 bytes do valor booleano e nome do campo done
  • 17 bytes do nome do campo priority e valor inteiro
  • 32 bytes adicionais

Próximas etapas

Saiba mais sobre os preços do Cloud Firestore.