Cálculos do tamanho de armazenamento
Esta página descreve o tamanho de armazenamento de documentos, campos e entradas de índice no Firestore com compatibilidade com o MongoDB.
Pode saber mais sobre os custos deste armazenamento na página Preços.
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:
- Nome da coleção
 - Nomes dos campos
 - Valores de campos de string (incluindo 
_id) 
Por exemplo:
- O nome da coleção 
tasksusa 5 bytes + 1 byte, para um total de 6 bytes. - O nome do campo 
descriptionusa 11 bytes + 1 byte, para um total de 12 bytes. 
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 | 
| Dados binários | Comprimento em bytes + 1 para um subtipo não genérico (diferente de 0) | 
| Data | 8 bytes | 
| Duplo | 8 bytes | 
| Double128 | 16 bytes | 
| Número inteiro de 32 bits | 4 bytes | 
| Número inteiro de 64 bits (longo) | 8 bytes | 
| Objeto | A soma dos tamanhos das strings de cada nome de campo e os tamanhos de cada valor de campo no objeto incorporado | 
| Chave mínima | 1 byte | 
| Chave máx. | 1 byte | 
| Nulo | 1 byte | 
| Expressão regular | (Comprimento do padrão + 1) + (Comprimento das opções + 1) | 
| Indicação de tempo | 8 bytes | 
| String | Número de bytes codificados em UTF-8 + 1 | 
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:
- O tamanho da string do nome da coleção
 - A soma do tamanho da string de cada nome de campo (exceto 
_id) - A soma da dimensão de cada valor do campo (incluindo 
_id) - 48 bytes adicionais
 
Este exemplo destina-se a um documento na coleção tasks:
{
  "_id": "my_task_id",
  "type": "Personal",
  "done": false,
  "priority": 1,
  "description": "Learn Cloud Firestore"
}
O tamanho total dos campos é de 78 bytes:
| Nome e valor do campo | Tamanho do campo em bytes | 
|---|---|
"_id": "my_task_id" | 
11 para o valor de string do campo | 
"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 + 4 para o valor inteiro de 32 bits 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 6 + 78 + 48 = 132 bytes:
- 6 para o nome da coleção
 - 78 bytes para os campos
 - 48 bytes adicionais
 
Tamanho da entrada de índice
O tamanho de uma entrada de índice num índice é a soma do seguinte:
- O tamanho da string do nome da coleção
 - O tamanho do valor do campo 
_id - A soma dos valores dos campos indexados
 - 48 bytes adicionais
 
Considere um documento na coleção tasks:
{
  "_id": "my_task_id",
  "type": "Personal",
  "done": false,
  "priority": 1,
  "description": "Learn Cloud Firestore"
}
Para um índice nos campos done e priority (ambos ascendentes), o tamanho total da entrada do índice neste índice é de 70 bytes:
- 6 bytes para o nome da coleção 
tasks - 11 bytes para o valor do campo 
_id - 1 byte para o valor do campo booleano
 - 4 bytes para o valor do campo de número inteiro de 32 bits
 - 48 bytes adicionais
 
Para índices esparsos, se um documento não incluir nenhum dos campos,
não é criada nenhuma entrada de índice. Se um documento contiver, pelo menos, um dos campos indexados, é criada uma entrada de índice com os campos indexados ausentes definidos como NULL.
O que se segue?
Saiba mais acerca dos preços.