Cálculos de tamaño del almacenamiento

En esta página se describe el tamaño de almacenamiento de los documentos, los nombres de los documentos, los campos y las entradas de índice en Firestore.

Puedes consultar los costes de este almacenamiento en la página Precios de Firestore.

Tamaño de cadena

El tamaño de las cadenas se calcula como el número de bytes codificados en UTF-8 más 1.

Los siguientes elementos se almacenan como cadenas:

  • IDs de colección
  • IDs de documento de cadena
  • Nombres de los documentos
  • Nombres de campos
  • Valores de campo de cadena

Por ejemplo:

  • El ID de colección tasks usa 5 bytes + 1 byte, lo que da un total de 6 bytes.
  • El nombre de campo description usa 11 bytes + 1 byte, lo que da un total de 12 bytes.

Tamaño del ID de documento

El tamaño de un ID de documento es el tamaño de la cadena de un ID de cadena o 8 bytes en el caso de un ID de entero.

Tamaño del nombre del documento

El tamaño del nombre de un documento es la suma de lo siguiente:

  • El tamaño de cada ID de colección y de documento en la ruta del documento
  • 16 bytes adicionales

En el caso de un documento de la subcolección users/jeff/tasks con un ID de documento de cadena my_task_id, el tamaño del nombre del documento es 6 + 5 + 6 + 11 + 16 = 44 bytes:

  • 6 bytes para el ID de colección users
  • 5 bytes para el ID de documento jeff
  • 6 bytes para el ID de colección tasks
  • 11 bytes correspondientes al ID de documento my_task_id
  • 16 bytes adicionales

Tamaño del valor del campo

En la siguiente tabla se muestra el tamaño de los valores de los campos por tipo.

Tipo Tamaño
Matriz La suma de los tamaños de sus valores
Booleano 1 byte
Bytes Longitud en bytes
Fecha y hora 8 bytes
Número de punto flotante 8 bytes
Punto geográfico 16 bytes
Entero 8 bytes
Mapa El tamaño del mapa, calculado de la misma forma que el tamaño del documento
Nulo 1 byte
Referencia El tamaño del nombre del documento
Cadena de texto Número de bytes codificados en UTF-8 + 1
Vector 8 bytes por dimensión

Por ejemplo, un campo booleano llamado done usaría 6 bytes:

  • 5 bytes para el nombre del campo done
  • 1 byte para el valor booleano

Tamaño de documento

El tamaño de un documento es la suma de lo siguiente:

Este ejemplo corresponde a un documento de la subcolección users/jeff/tasks con el ID de documento de cadena my_task_id:

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

El tamaño total de los campos es de 71 bytes:

Nombre y valor del campo Tamaño del campo en bytes
"type": "Personal" 14
5 para el nombre del campo + 9 para el valor de cadena del campo
"done": false 6
5 para el nombre del campo + 1 para el valor booleano del campo
"priority": 1 17
9 para el nombre del campo + 8 para el valor entero del campo
"description": "Learn Cloud Firestore" 34
12 para el nombre del campo + 22 para el valor de cadena del campo

Por lo tanto, el tamaño del documento es 44 + 71 + 32 = 147 bytes:

  • 44 bytes para el nombre del documento
  • 71 bytes para los campos
  • 32 bytes adicionales

Tamaño de la entrada de índice

El tamaño de las entradas de índice se calcula de la siguiente manera para los índices de campo único y los compuestos.

Tamaño de la entrada de índice de campo único

El tamaño de una entrada de índice de campo único depende de si el índice está acotado a una colección o a un grupo de colecciones.

Permiso de colección

El tamaño de una entrada de un índice de campo único con permiso de colección es la suma de lo siguiente:

Imagina un documento de la subcolección users/jeff/tasks con el ID de documento de cadena my_task_id:

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

En el caso de un índice de campo único con ámbito de colección que indexa el campo done, el tamaño total de la entrada en este índice es de 109 bytes:

  • 44 bytes para el nombre del documento users/jeff/tasks/my_task_id
  • 27 bytes para el nombre del documento principal users/jeff
  • 5 bytes para el nombre del campo done
  • 1 byte para el valor del campo booleano
  • 32 bytes adicionales

Permiso de grupo de colecciones

El tamaño de una entrada de un índice de campo único con el permiso de grupo de colecciones es la suma de lo siguiente:

Imagina un documento de la subcolección users/jeff/tasks con el ID de documento de cadena my_task_id:

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

En el caso de un índice de un solo campo con el permiso de grupo de colecciones que indexa el campo done, el tamaño total de la entrada en este índice es de 98 bytes:

  • 44 bytes para el nombre del documento users/jeff/tasks/my_task_id
  • 5 bytes para el nombre del campo done
  • 1 byte para el valor del campo booleano
  • 48 bytes adicionales

Tamaño de las entradas de índices compuestos

El tamaño de una entrada de un índice compuesto depende de si el índice se limita a una colección o a un grupo de colecciones.

Permiso de colección

El tamaño de una entrada de índice en un índice compuesto con ámbito de colección es la suma de lo siguiente:

Imagina un documento de la subcolección users/jeff/tasks con el ID de documento de cadena my_task_id:

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

En el caso de un índice compuesto con ámbito de colección que indexa los campos done y priority (ambos ascendentes), el tamaño total de la entrada en este índice es de 112 bytes:

  • 44 bytes para el nombre del documento users/jeff/tasks/my_task_id
  • 27 bytes para el nombre del documento principal users/jeff
  • 1 byte para el valor del campo booleano
  • 8 bytes para el valor del campo entero
  • 32 bytes adicionales

Permiso de grupo de colecciones

El tamaño de una entrada de índice en un índice compuesto con permiso de grupo de colecciones es la suma de lo siguiente:

Imagina un documento de la subcolección users/jeff/tasks con el ID de documento de cadena my_task_id:

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

En el caso de un índice compuesto con ámbito de grupo de colecciones que indexa los campos done y priority (ambos ascendentes), el tamaño total de la entrada de índice es de 85 bytes:

  • 44 bytes para el nombre del documento users/jeff/tasks/my_task_id
  • 1 byte para el valor del campo booleano
  • 8 bytes para el valor del campo entero
  • 32 bytes adicionales

Siguientes pasos

Consulta los precios de Firestore.