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 
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 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 
usersID da coleção - 5 bytes para o ID do documento 
jeff - 6 bytes para o 
tasksID da coleção - 11 bytes para o 
my_task_idID 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:
- O tamanho do nome do documento
 - A soma do tamanho da string de cada nome de campo
 - A soma do tamanho de cada valor do campo
 - 32 bytes adicionais
 
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:
- O tamanho do nome do documento do documento indexado
 - O tamanho do nome do documento do documento principal do documento indexado
 - O tamanho da string do nome do campo indexado
 - O tamanho do valor do campo indexado
 - 32 bytes adicionais
 
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:
- O tamanho do nome do documento do documento indexado
 - O tamanho da string do nome do campo indexado
 - O tamanho do valor do campo indexado
 - 48 bytes adicionais
 
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:
- O tamanho do nome do documento do documento indexado
 - O tamanho do nome do documento do documento principal do documento indexado
 - A soma dos valores dos campos indexados
 - 32 bytes adicionais
 
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:
- O tamanho do nome do documento do documento indexado
 - A soma dos valores dos campos indexados
 - 32 bytes adicionais
 
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