Cuotas y límites

En esta página se identifican los límites y las cuotas de las solicitudes de Firestore.

Cuota gratuita

Firestore ofrece cuotas gratuitas que te permiten dar tus primeros pasos sin coste alguno. Si necesitas una cuota mayor, deberás habilitar la facturación de tu Google Cloud proyecto.

Las cuotas se aplican por día y se reinician aproximadamente a las 00:00 (UTC-7 o UTC-8 según la época del año).

En la siguiente tabla se resumen las cantidades de las cuotas gratuitas:

Nivel gratuito Cuota
Datos almacenados 1 GiB
Operaciones de lectura de documentos 50.000 al día
Operaciones de escritura de documentos 20.000 al día
Operaciones de eliminación de documentos 20.000 al día
Transferencia de datos salientes 10 GiB al mes

Las siguientes operaciones y funciones no incluyen uso gratuito. Para usar estas funciones, debes habilitar la facturación:

  • Eliminaciones de TTL
  • Datos de PITR
  • Crear una copia de seguridad de los datos
  • Operaciones de restauración
  • Operaciones de clonación

Para obtener más información sobre cómo se facturan estas funciones, consulta los precios de almacenamiento.

Límites estándar

En las siguientes tablas se muestran los límites que se aplican a Firestore. Estos son límites estrictos, a menos que se indique lo contrario.

Bases de datos

Límite Detalles
Número máximo de bases de datos por proyecto

100

Puedes ponerte en contacto con el equipo de Asistencia para solicitar que se aumente este límite.

Número máximo de bases de datos con claves de encriptado gestionadas por el cliente (CMEK) por proyecto

0

De forma predeterminada, la cuota es 0 porque esta función está detrás de una lista de permitidos. Puede solicitar un aumento de la cuota rellenando el formulario de solicitud de acceso a CMEK.

Colecciones, documentos y campos

Límite Detalles
Restricciones en los ID de las colecciones
  • Deben contener caracteres UTF‑8 válidos.
  • No deben superar los 1500 bytes.
  • No pueden contener una barra inclinada (/).
  • No pueden estar compuestos únicamente por un punto (.) o dos puntos (..).
  • No pueden coincidir con la expresión regular __.*__.
Profundidad máxima de las subcolecciones 100
Restricciones en los ID de los documentos
  • Deben contener caracteres UTF‑8 válidos.
  • No deben superar los 1500 bytes.
  • No pueden contener una barra inclinada (/).
  • No pueden estar compuestos únicamente por un punto (.) o dos puntos (..).
  • No pueden coincidir con la expresión regular __.*__.
  • Si importas entidades de Datastore a una base de datos de Firestore, los ID de entidad numérica se muestran como __id[0-9]+__.
Tamaño máximo del nombre de documento 6 KiB
Tamaño máximo de documento 1 MiB (1.048.576 bytes)
Restricciones en los nombres de campo
  • Deben contener caracteres UTF‑8 válidos.
  • No pueden coincidir con la expresión regular __.*__.
Tamaño máximo del nombre de campo 1500 bytes
Restricciones en las rutas del campo
  • Los nombres de campo deben separarse con un solo punto (.).
  • Se puede transferir como una cadena de segmentos delimitada por puntos (.), donde cada segmento es un nombre de campo simple o un nombre de campo entre comillas (definido más abajo).
Un nombre de campo simple es aquel que cumple las siguientes condiciones:
  • Incluye únicamente los caracteres a-z, A-Z, 0-9 y el guion bajo (_).
  • No empieza por 0-9.
Un nombre de campo entre comillas empieza y termina con el carácter de comilla inversa (`). Por ejemplo, foo.`x&y` hace referencia al campo x&y anidado en el campo foo. Para crear un nombre de campo con el carácter de acento grave, usa el carácter de barra invertida (\). Para mayor comodidad, puedes evitar los nombres de campo entre comillas transfiriendo la ruta de campo como un objeto FieldPath (por ejemplo, consulta FieldPath de JavaScript).
Tamaño máximo de una ruta de campo 1500 bytes
Tamaño máximo de un valor de campo 1 MiB - 89 bytes (1.048.487 bytes)
Profundidad máxima de los campos en un mapa o matriz

20

Los campos de mapa y de matriz añaden un nivel a la profundidad general de un objeto. Por ejemplo, el siguiente objeto tiene una profundidad total de tres niveles:


{
  nested_map: {         #depth 1
    nested_array: [     #depth 2
      {
        foo: "bar"      #depth 3
      }
    ]
  }
}
      

Escrituras y transacciones

Además de estos límites, también debe consultar las prácticas recomendadas para diseñar a gran escala.

Límite Detalles
Tamaño máximo de solicitud a la API 10 MiB
Límite de tiempo para una transacción 270 segundos, con un tiempo de caducidad por inactividad de 60 segundos
Número máximo de transformaciones de campo que se pueden realizar en un solo documento con una operación Commit o en una transacción 500

Índices

Los siguientes límites se aplican a índices de campo único e índices compuestos:

En esta página se identifican los límites y las cuotas de las solicitudes de Firestore.

Límite Detalles
Número máximo de índices compuestos en una base de datos
Número máximo de configuraciones de campo único en una base de datos

Una configuración de nivel de campo puede contener varias configuraciones para el mismo campo. Por ejemplo, una exención de indexación de un solo campo y una política de TTL en el mismo campo cuentan como una configuración de campo para alcanzar el límite.

Número máximo de entradas de índices para cada documento

40.000

El número de entradas de índices es la suma de los siguientes elementos en un documento:

  • Número de entradas de índices de campo único
  • Número de entradas de índices compuestos

Para ver cómo convierte Firestore un documento y un conjunto de índices en entradas de índice, consulta este número de entradas de índice de ejemplo.

Número máximo de campos en un índice compuesto 100
Tamaño máximo de una entrada de índice

7,5 KiB

Para comprobar cómo se calcula el tamaño de entrada de índice en Firestore, consulta la sección sobre el tamaño de entrada de índice.

Suma máxima de los tamaños de las entradas de índice de un documento

8 MiB

El tamaño total es la suma de los siguientes elementos en un documento:

  • La suma del tamaño de las entradas de índices de campo único en un documento
  • La suma del tamaño de las entradas de índices compuestos de un documento
  • Tamaño máximo del valor de un campo indexado

    1500 bytes

    Si el valor del campo supera los 1500 bytes, aparece cortado, y las consultas relacionadas con valores de campo cortados pueden devolver resultados incoherentes

    Tiempo de vida (TTL)

    Límite Detalles
    Número máximo de configuraciones de campo único en una base de datos

    Una configuración de nivel de campo puede contener varias configuraciones para el mismo campo. Por ejemplo, una exención de indexación de un solo campo y una política de TTL en el mismo campo cuentan como una configuración de campo para alcanzar el límite.

    Exportación e importación

    Los siguientes límites se aplican a las operaciones de importación y exportación gestionadas:

    Límite Detalles
    Número total máximo de solicitudes de exportación e importación por minuto que se permite en un proyecto 20
    Número máximo de exportaciones e importaciones simultáneas 50
    Número máximo de filtros de ID de colección para solicitudes de exportación e importación 100

    Reglas de seguridad

    Límite Detalles
    Número máximo de llamadas exists(), get() y getAfter() por solicitud
    • 10 para solicitudes de un único documento y de consultas.
    • 20 para lecturas de varios documentos, transacciones y escrituras por lotes. El límite anterior de 10 también se aplica a cada operación.

      Por ejemplo, imagina que creas una solicitud de escritura por lotes con 3 operaciones de escritura y que tus reglas de seguridad usan 2 llamadas de acceso al documento para validar cada escritura. En este caso, cada escritura usa 2 de sus 10 llamadas de acceso, mientras que la solicitud de escritura por lotes usa 6 de sus 20 llamadas de acceso.

    Si se supera cualquiera de los límites, se obtiene un error de permiso denegado.

    Algunas llamadas de acceso al documento pueden permanecer en caché, pero las llamadas en caché no se tienen en cuenta para los límites.

    Número máximo de niveles de anidamiento de declaraciones match 10
    Longitud máxima de ruta (en segmentos de ruta) permitida en un conjunto de declaraciones match anidadas 100
    Número máximo de variables de captura de ruta permitido en un conjunto de declaraciones match anidadas 20
    Profundidad máxima de la llamada de funciones 20
    Número máximo de argumentos de función 7
    Número máximo de vinculaciones de variable let por función 10
    Número máximo de llamadas de funciones cíclicas o periódicas 0 (no permitidas)
    Número máximo de expresiones evaluadas por solicitud 1000
    Tamaño máximo de un conjunto de reglas Hay dos límites de tamaño para los conjuntos de reglas:
    • El límite de tamaño del origen de texto del conjunto de reglas publicado desde la consola de Firebase o desde la CLI usando firebase deploy es de 256 kB.
    • El límite de tamaño del conjunto de reglas compilado que se genera cuando Firebase procesa el origen y lo activa en el backend es de 250 kB.

    Monitorizar el uso

    Puedes consultar tu uso de Firestore en las páginas Cuotas de la API de Cloud Firestore y Cuotas de App Engine.