Catch up on highlights from Firebase at Google I/O 2023. Learn more

Calculs de la taille de stockage

Cette page décrit la taille de stockage des documents, les noms de documents, les champs et les entrées d'index dans Cloud Firestore.

Vous pouvez en savoir plus sur les coûts de ce stockage sur Tarification Cloud Firestore .

Taille de chaîne

Les tailles de chaîne sont calculées comme le nombre d'octets encodés en UTF-8 + 1.

Les éléments suivants sont stockés sous forme de chaînes :

  • ID de collecte
  • ID de document de chaîne
  • Noms de documents
  • Noms de champs
  • Valeurs de champ de chaîne

Par exemple:

  • Les tasks d'identification de collection utilisent 5 octets + 1 octet, pour un total de 6 octets.
  • La description du nom de champ utilise 11 octets + 1 octet, pour un total de 12 octets.

Taille de l'identifiant du document

La taille d'un ID de document est soit la taille de chaîne pour un ID de chaîne, soit 8 octets pour un ID entier.

Taille du nom du document

La taille d'un nom de document est la somme de :

  • La taille de chaque ID de collection et ID de document dans le chemin d'accès au document
  • 16 octets supplémentaires

Pour un document dans la sous-collection users/jeff/tasks avec un ID de document de chaîne my_task_id , la taille du nom de document est de 6 + 5 + 6 + 11 + 16 = 44 octets :

  • 6 octets pour l'ID de collection users
  • 5 octets pour l'ID du document jeff
  • 6 octets pour l'ID de collection tasks
  • 11 octets pour l'ID de document my_task_id
  • 16 octets supplémentaires

Taille de la valeur du champ

Le tableau suivant indique la taille des valeurs de champ par type.

Taper Taille
Déployer La somme des tailles de ses valeurs
booléen 1 octet
Octets Longueur en octets
Date et l'heure 8 octets
Nombre à virgule flottante 8 octets
Point géographique 16 octets
Entier 8 octets
Carte La taille de la carte, calculée de la même manière que la taille du document
Nul 1 octet
Référence La taille du nom du document
Chaîne de texte Nombre d'octets encodés en UTF-8 + 1

Par exemple, un champ booléen nommé done utiliserait 6 octets :

  • 5 octets pour le nom du champ done
  • 1 octet pour la valeur booléenne

Taille des documents

La taille d'un document est la somme de :

Cet exemple concerne un document dans la sous-collection users/jeff/tasks avec un ID de document de chaîne my_task_id :

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

La taille totale des champs est de 71 octets :

Nom et valeur du champ Taille du champ en octets
"type": "Personal" 14
5 pour le nom du champ + 9 pour la valeur de chaîne du champ
"done": false 6
5 pour le nom du champ + 1 pour la valeur booléenne du champ
"priority": 1 17
9 pour le nom du champ + 8 pour la valeur entière du champ
"description": "Learn Cloud Firestore" 34
12 pour le nom du champ + 22 pour la valeur de chaîne du champ

La taille du document est donc de 44 + 71 + 32 = 147 octets :

  • 44 octets pour le nom du document
  • 71 octets pour les champs
  • 32 octets supplémentaires

Taille d'entrée d'index

Les tailles d'entrée d'index sont calculées comme suit pour les index à champ unique et composites.

Taille d'entrée d'index à champ unique

La taille d'une entrée d'index à champ unique varie selon que l'index est limité à une collection ou à un groupe de collections.

Périmètre de collecte

La taille d'une entrée dans un index à champ unique avec une portée de collection est la somme de :

Considérez un document dans la sous-collection users/jeff/tasks avec un ID de document de chaîne my_task_id :

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

Pour un index à champ unique avec une portée de collection qui indexe le champ done , la taille totale de l'entrée dans cet index est de 109 octets :

  • 44 octets pour le nom du document users/jeff/tasks/my_task_id
  • 27 octets pour le nom du document parent users/jeff
  • 5 octets pour le nom du champ done
  • 1 octet pour la valeur du champ booléen
  • 32 octets supplémentaires

Étendue du groupe de collecte

La taille d'une entrée dans un index à champ unique avec une portée de groupe de collections est la somme de :

Considérez un document dans la sous-collection users/jeff/tasks avec un ID de document de chaîne my_task_id :

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

Pour un index à champ unique avec une portée de groupe de collecte qui indexe le champ done , la taille totale de l'entrée dans cet index est de 98 octets :

  • 44 octets pour le nom du document users/jeff/tasks/my_task_id
  • 5 octets pour le nom du champ done
  • 1 octet pour la valeur du champ booléen
  • 48 octets supplémentaires

Taille d'entrée de l'index composite

La taille d'une entrée dans un index composite varie selon que l'index est limité à une collection ou à un groupe de collections.

Périmètre de collecte

La taille d'une entrée d'index dans un index composite avec une portée de collection est la somme de :

Considérez un document dans la sous-collection users/jeff/tasks avec un ID de document de chaîne my_task_id :

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

Pour un index composite avec une portée de collection qui indexe les champs done et priority (tous deux croissants), la taille totale de l'entrée dans cet index est de 112 octets :

  • 44 octets pour le nom du document users/jeff/tasks/my_task_id
  • 27 octets pour le nom du document parent users/jeff
  • 1 octet pour la valeur du champ booléen
  • 8 octets pour la valeur du champ entier
  • 32 octets supplémentaires

Étendue du groupe de collecte

La taille d'une entrée d'index dans un index composite avec une étendue de groupe de collections est la somme de :

Considérez un document dans la sous-collection users/jeff/tasks avec un ID de document de chaîne my_task_id :

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

Pour un index composite avec une portée de groupe de collecte qui indexe les champs done et priority (tous deux croissants), la taille totale de l'entrée d'index dans cet index est de 85 octets :

  • 44 octets pour le nom du document users/jeff/tasks/my_task_id
  • 1 octet pour la valeur du champ booléen
  • 8 octets pour la valeur du champ entier
  • 32 octets supplémentaires

Et après

En savoir plus sur les tarifs de Cloud Firestore .