Uso y límites

Utilice esta guía para comprender los límites de Cloud Firestore y consulte Precios de Cloud Firestore para obtener una explicación completa y detallada de los costos de Cloud Firestore, incluidos los aspectos a tener en cuenta.

Controle su uso

Para monitorear su uso de Cloud Firestore, abra la pestaña Uso de Cloud Firestore en Firebase console. Utilice el panel para medir su uso en diferentes períodos de tiempo.

Uso detallado en la consola de Google Cloud

Cuando creas un proyecto de Firebase, también estás creando un proyecto de Google Cloud. Las páginas Cuotas de API de Cloud Firestore y Cuotas de App Engine en la consola de Google Cloud rastrean el uso de Cloud Firestore y la información de cuotas.

Cuota libre

Cloud Firestore ofrece una cuota gratuita que le permite comenzar con su base de datos (default) sin costo alguno. Los montos de las cuotas gratuitas se enumeran a continuación. Si necesitas más cuota, debes habilitar la facturación para tu proyecto de Google Cloud .

Las cuotas se aplican diariamente y se restablecen alrededor de la medianoche, hora del Pacífico.

Sólo la base de datos (default) califica para la cuota gratuita.

Nivel gratuito Cuota
Datos almacenados 1 GB
Lecturas de documentos 50.000 por día
El documento escribe 20.000 por día
Eliminaciones de documentos 20.000 por día
Transferencia de datos salientes 10 GiB por mes

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

  • Uso de bases de datos con nombre (no predeterminadas)
  • Eliminaciones TTL
  • datos PITR
  • Los datos de copia de seguridad
  • Restaurar operaciones

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

Límites estándar

Las siguientes tablas muestran los límites que se aplican a Cloud 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

Puede ponerse en contacto con el soporte para solicitar un aumento a este límite.

Colecciones, documentos y campos.

Límite Detalles
Restricciones en los ID de colección
  • Deben ser caracteres UTF-8 válidos.
  • No debe tener más de 1500 bytes.
  • No puede contener una barra diagonal ( / )
  • No puede consistir únicamente en un solo período ( . ) o períodos dobles ( .. )
  • No se puede coincidir con la expresión regular __.*__
Profundidad máxima de subcolecciones 100
Restricciones en los ID de documentos
  • Deben ser caracteres UTF-8 válidos.
  • No debe tener más de 1500 bytes.
  • No puede contener una barra diagonal ( / )
  • No puede consistir únicamente en un solo período ( . ) o períodos dobles ( .. )
  • No se puede coincidir con la expresión regular __.*__
  • Si importa entidades de Datastore a una base de datos de Firestore, los ID de entidad numéricos se exponen como __id[0-9]+__
Tamaño máximo para un nombre de documento 6 KiB
Tamaño máximo para un documento 1 MB (1.048.576 bytes)
Restricciones en los nombres de los campos Deben ser caracteres UTF-8 válidos.
Tamaño máximo de un nombre de campo 1.500 bytes
Restricciones en los caminos de campo
  • Debe separar los nombres de los campos con un solo punto ( . )
  • Puede pasarse como una cadena de segmentos delimitada por puntos ( . ) donde cada segmento es un nombre de campo simple o un nombre de campo entrecomillado (definido a continuación).
Un nombre de campo simple es aquel en el que se cumplen todas las condiciones siguientes:
  • Contiene solo los caracteres az , AZ , 0-9 y guión bajo ( _ )
  • No comienza con 0-9
Un nombre de campo entrecomillado comienza y termina con el carácter de comilla invertida ( ` ). Por ejemplo, foo.`x&y` se refiere al campo x&y anidado debajo del campo foo . Para construir un nombre de campo con el carácter de comilla invertida, escape el carácter de comilla invertida con el carácter de barra invertida ( \ ). Para mayor comodidad, puede evitar los nombres de campos entre comillas pasando la ruta del campo como un objeto FieldPath ( por ejemplo, consulte JavaScript FieldPath ).
Tamaño máximo de una ruta de campo 1.500 bytes
Tamaño máximo de un valor de campo 1 MiB - 89 bytes (1.048.487 bytes)
Profundidad máxima de campos en un mapa o matriz 20

Escrituras y transacciones

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

Límite Detalles
Tamaño máximo de solicitud de API 10 MB
Límite de tiempo para una transacción 270 segundos, con un tiempo de vencimiento inactivo de 60 segundos

Índices

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

Límite Detalles
Número máximo de índices compuestos para una base de datos
Número máximo de configuraciones de un solo campo para una base de datos

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

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

40.000

El número de entradas de índice es la suma de lo siguiente para un documento:

  • El número de entradas de índice de un solo campo.
  • El número de entradas de í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 .

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

7,5 KiB

Para ver cómo Cloud Firestore calcula el tamaño de la entrada del índice, consulta Tamaño de la entrada del índice .

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

8 MB

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

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

    1500 bytes

    Los valores de campo de más de 1500 bytes se truncan. Las consultas que involucran valores de campo truncados pueden arrojar resultados inconsistentes.

    Tiempo de vida (TTL)

    Límite Detalles
    Número máximo de configuraciones de un solo campo para una base de datos

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

    Exportar importar

    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 para un proyecto permitidas por minuto 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 documento único y solicitudes de consulta.
    • 20 para lecturas, transacciones y escrituras por lotes de múltiples documentos. El límite anterior de 10 también se aplica a cada operación.

      Por ejemplo, imagine que crea una solicitud de escritura por lotes con 3 operaciones de escritura y que sus reglas de seguridad utilizan 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 por lotes utiliza 6 de sus 20 llamadas de acceso.

    Exceder cualquiera de los límites da como resultado un error de permiso denegado.

    Algunas llamadas de acceso a documentos pueden almacenarse en caché y las llamadas en caché no cuentan para los límites.

    Profundidad máxima de declaración match anidada 10
    Longitud máxima de ruta, en segmentos de ruta, permitida dentro de un conjunto de declaraciones match anidadas 100
    Número máximo de variables de captura de ruta permitidas dentro de un conjunto de declaraciones match anidadas 20
    Profundidad máxima de llamada de función 20
    Número máximo de argumentos de función 7
    Número máximo de enlaces de variables let por función 10
    Número máximo de llamadas a funciones recursivas o cíclicas 0 (no permitido)
    Número máximo de expresiones evaluadas por solicitud 1.000
    Tamaño máximo de un conjunto de reglas Los conjuntos de reglas deben obedecer dos límites de tamaño:
    • un límite de 256 KB en el tamaño de la fuente de texto del conjunto de reglas publicada desde Firebase console o desde CLI mediante firebase deploy .
    • un límite de 250 KB en el tamaño del conjunto de reglas compilado que resulta cuando Firebase procesa el código fuente y lo activa en el back-end.

    Gestionar el gasto

    Para ayudar a evitar cargos inesperados en su factura, establezca alertas y presupuestos mensuales.

    Establecer un presupuesto mensual

    Para realizar un seguimiento de los costos de Cloud Firestore, cree un presupuesto mensual en la consola de Google Cloud. Los presupuestos no limitarán su uso, pero puede configurar alertas para que le notifiquen cuando se acerque o supere sus costos planificados para el mes.

    Para establecer un presupuesto, vaya a la sección Facturación en la consola de Google Cloud y cree un presupuesto para su cuenta de Facturación de Cloud. Puede utilizar la configuración de alerta predeterminada o modificar las alertas para enviar notificaciones en diferentes porcentajes de su presupuesto mensual.

    Obtenga más información sobre cómo configurar presupuestos y alertas de presupuesto .