Uso y límites

Usa esta guía para comprender los límites de Cloud Firestore y consulta Precios de Cloud Firestore si quieres obtener una explicación completa y detallada de los costos de Cloud Firestore, incluidos otros costos que hay que tener en cuenta.

Supervisa el uso

Para supervisar el uso de Cloud Firestore, abre la pestaña Uso de Cloud Firestore en Firebase console. Usa el panel para regular el uso en diferentes períodos de tiempo.

Uso detallado en Google Cloud Console

Cuando creas un proyecto de Firebase, también creas un proyecto de Google Cloud. En la consola de Google Cloud, en las páginas Cuotas de la API de Cloud Firestore y Cuotas de App Engine, se hace un seguimiento de la información del uso y las cuotas de Cloud Firestore.

Cuota gratuita

Cloud Firestore ofrece una cuota gratuita que te permite comenzar sin costos. Las cantidades de la cuota gratuita se muestran a continuación. Si necesitas aumentar la cuota, debes habilitar la facturación para tu proyecto de Google Cloud.

Las cuotas se aplican cada día y se restablecen a la medianoche, hora del Pacífico.

Solo la base de datos de (default) califica para la cuota gratuita.

Nivel gratuito Cuota
Datos almacenados 1 GiB
Operaciones de lectura de documentos 50,000 por día
Operaciones de escritura de documentos 20,000 por día
Operaciones de eliminación de documentos 20,000 por día
Transferencia de datos saliente 10 GiB por mes

Las siguientes operaciones y funciones no incluyen el uso gratuito. Debes habilitar la facturación para usar estas funciones:

  • Eliminaciones de TTL
  • Datos de PITR
  • Crear copias de seguridad de los datos
  • Operaciones de restablecimiento

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

Límites estándar

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

Bases de datos

Límite Detalles
Cantidad máxima de bases de datos por proyecto

100

Puedes comunicarte con el equipo de asistencia para solicitar un aumento de este límite.

Colecciones, documentos y campos

Límite Detalles
Restricciones del ID de colección
  • Debe estar compuesto por caracteres UTF-8 válidos.
  • No puede superar los 1,500 bytes.
  • No puede contener una barra diagonal (/).
  • No puede componerse solo de un punto (.) ni de puntos dobles (..).
  • No puede coincidir con la expresión regular __.*__.
Profundidad máxima de subcolecciones 100
Restricciones del ID de documento
  • Debe estar compuesto por caracteres UTF-8 válidos.
  • No puede superar los 1,500 bytes.
  • No puede contener una barra diagonal (/).
  • No puede componerse solo de un punto (.) ni de puntos dobles (..).
  • No puede coincidir con la expresión regular __.*__.
  • Si importas entidades de Datastore a una base de datos de Firestore, los ID numéricos de las entidades se exponen como __id[0-9]+__.
Tamaño máximo del nombre de un documento 6 KiB
Tamaño máximo de un documento 1 MiB (1,048,576 bytes)
Restricciones del nombre de un campo Debe estar compuesto por caracteres UTF-8 válidos.
Tamaño máximo del nombre de un campo 1,500 bytes
Restricciones de la ruta de un campo
  • Se deben separar los nombres de los campos con un solo punto (.).
  • Se puede pasar como una string delimitada por puntos (.) de segmentos en la que cada uno es un nombre de campo simple o un nombre de campo entre comillas (definido a continuación).
Un campo de nombre simple es uno en el que todas estas afirmaciones son verdaderas:
  • Solo contiene los caracteres a-z, A-Z, 0-9 y guion bajo (_).
  • No comienza con 0-9.
El nombre de un campo entre comillas comienza y termina con el carácter de acento grave (`). Por ejemplo, foo.`x&y` se refiere al campo x&y anidado en el campo foo. Para crear un nombre de campo con el carácter de acento grave, utiliza el carácter de barra inversa (\). Para mayor comodidad, puedes evitar los nombres de campo entrecomillados pasando la ruta del campo como un objeto FieldPath (por ejemplo, consulta JavaScript FieldPath).
Tamaño máximo de la ruta de un campo 1,500 bytes
Tamaño máximo del valor de un campo 1 MiB - 89 bytes (1,048,487 bytes)
Profundidad máxima de los campos en un mapa o arreglo 20

Escrituras y transacciones

Además de estos límites, también deberías consultar las prácticas recomendadas con el fin de diseñar para el escalamiento.

Límite Detalles
Tamaño máximo de la solicitud a la API 10 MiB
Límite de tiempo de una transacción 270 segundos, con un tiempo de vencimiento por inactividad de 60 segundos

Índices

Los siguientes límites se aplican a los índices de un único campo y a los compuestos:

Límite Detalles
Cantidad máxima de índices compuestos que se permiten para una base de datos
Cantidad máxima de parámetros de configuración de campo único para una base de datos

Una configuración a nivel de campo puede contener varios parámetros de configuración para el mismo campo. Por ejemplo, una exención de la indexación de campo único y una política de TTL en el mismo campo se registran como un solo parámetro de configuración para el límite.

Cantidad máxima de entradas de índice permitidas en cada documento

40,000

La cantidad de entradas de índice en cada documento es la suma de los siguientes elementos:

  • Cantidad de entradas en un índice de campo único
  • Cantidad de entradas en un índice compuesto

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

Cantidad máxima de campos en un índice compuesto 100
Tamaño máximo de una entrada de índice

7.5 KiB

Para saber cómo Cloud Firestore calcula el tamaño de las entradas en el índice, consulta Tamaño de una entrada del índice.

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

8 MiB

El tamaño total corresponde a la suma de los siguientes elementos de un documento:

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

    1,500 bytes

    Se reducirán los valores de campo que superen los 1,500 bytes. Es posible que las consultas que tengan valores de campo reducidos muestren resultados incoherentes.

    Tiempo de actividad (TTL)

    Límite Detalles
    Cantidad máxima de parámetros de configuración de campo único para una base de datos

    Una configuración a nivel de campo puede contener varios parámetros de configuración para el mismo campo. Por ejemplo, una exención de la indexación de campo único y una política de TTL en el mismo campo se registran como un solo parámetro de configuración para el límite.

    Operaciones de importación y exportación

    Se aplican los siguientes límites a las operaciones administradas de importación y exportación:

    Límite Detalles
    Cantidad máxima de solicitudes de importación y exportación que se permiten por minuto en un proyecto 20
    Cantidad máxima de importaciones y exportaciones simultáneas 50
    Cantidad máxima de filtros de ID de colecciones para solicitudes de importación y exportación 100

    Reglas de seguridad

    Límite Detalles
    Cantidad máxima de llamadas exists(), get() y getAfter() por solicitud
    • El límite es de 10 para las solicitudes de un solo documento o las solicitudes de consulta.
    • El límite es de 20 para las lecturas de varios documentos, transacciones y escrituras en lotes. El límite anterior de 10 también se aplica a cada operación.

      Por ejemplo, imagina que creas una solicitud de escritura en lotes con 3 operaciones de escritura y que tus reglas de seguridad usan 2 llamadas de acceso a documentos para validar cada escritura. En este caso, cada escritura utiliza 2 de sus 10 llamadas de acceso, y la solicitud de escritura en lotes utiliza 6 de sus 20 llamadas de acceso.

    Si se excede alguno de esos límites, se obtiene un error de permiso denegado.

    Algunas llamadas de acceso a documentos se pueden almacenar en caché, y estas llamadas no cuentan para los límites.

    Profundidad máxima de las declaraciones match anidadas 10
    Longitud máxima de la ruta de acceso, en segmentos de ruta, permitida en un conjunto de declaraciones match anidadas: 100
    Cantidad máxima de variables de captura de rutas de acceso permitida en un conjunto de instrucciones match anidadas 20
    Profundidad máxima de las llamadas a funciones 20
    Cantidad máxima de argumentos de funciones 7
    Cantidad máxima de vinculaciones a variables let por función 10
    Cantidad máxima de llamadas recurrentes o cíclicas a una función 0 (no permitidas)
    Cantidad máxima de expresiones evaluadas por solicitud 1,000
    Tamaño máximo de un conjunto de reglas Los conjuntos de reglas deben cumplir con dos límites de tamaño:
    • 256 KB en el tamaño del texto origen del conjunto de reglas publicado desde Firebase console o la CLI con firebase deploy
    • 250 KB en el tamaño del conjunto de reglas compilado que se genera cuando Firebase procesa la fuente y la activa en el backend

    Administra los gastos

    Para evitar cargos inesperados en tu factura, configura presupuestos mensuales y alertas.

    Configura un presupuesto mensual

    Para realizar un seguimiento de tus costos de Cloud Firestore, crea un presupuesto mensual en Google Cloud Console. Los presupuestos no limitarán tu uso, pero puedes establecer alertas a fin de recibir notificaciones cuando te acerques a los costos planificados para el mes o cuando los excedas.

    Para configurar un presupuesto, ve a la sección Facturación en Google Cloud Console y crea un presupuesto para la cuenta de Facturación de Cloud. Puedes usar la configuración de alertas predeterminada o modificar las alertas para que envíen notificaciones cuando se alcancen diferentes porcentajes del presupuesto mensual.

    Obtén más información para configurar presupuestos y alertas de presupuesto.