Ir a la consola

Consulta un ejemplo de precios de Cloud Firestore

Usa este ejemplo real de una app de chat básica para calcular tu uso y los costos de Cloud Firestore. La estimación no es exacta, pero puedes usarla para comprender mejor facturación por el uso de Cloud Firestore.

Descripción general: Costos por nivel de uso

Para ilustrar los costos habituales, usaremos una app de chat de ejemplo que permite a los usuarios chatear con dos o más personas. Los usuarios pueden ver sus chats activos en una lista y leer y enviar mensajes. En este ejemplo, usamos los precios de la multirregión de Norteamérica (específicamente, nam5).

Suposiciones

Ten en cuenta estas suposiciones sobre el uso y el almacenamiento de datos:

  • Los usuarios activos diarios (DAU) corresponden al 10% de las instalaciones totales de la app. Puedes calcular los costos diarios con una estimación aproximada de los DAU. Estos son usuarios que abren y usan la app de manera activa en un día específico, que suele corresponder a un pequeño subconjunto de instalaciones totales de la app. En los siguientes cálculos, estimamos los DAU como un 10% del total de instalaciones de la app.
  • El tamaño de los documentos es relativamente pequeño. Consulta la siguiente tabla para ver un desglose de los tipos de tamaño de documento.
  • Los datos solo se almacenan por tres meses. Los mensajes en la app de chat del ejemplo solo se almacenan por un período de tres meses. Para considerar las operaciones de eliminación, los siguientes cálculos muestran una de estas operaciones por cada escritura diaria.
  • Las estimaciones de costos reflejan la mayor parte de los gastos de la app de ejemplo, no todos. Consideramos la mayor parte de los costos de una app mediante el cálculo del almacenamiento de operaciones, usuarios y mensajes, así como la salida de las tareas más frecuentes de los usuarios que se indican en esta guía. Sin embargo, es posible que debas considerar costos adicionales en función de la estructura y las necesidades de datos de tu app. Usa este ejemplo en los cálculos, pero también consulta la página de precios a fin de obtener más detalles sobres los costos de Cloud Firestore.

Consulta la sección Desglose: Uso facturado por tarea de usuario para ver un desglose de las operaciones.

Pequeño
(50,000 instalaciones)

Por 50,000 instalaciones de la app (5,000 usuarios activos diarios): USD 12.14 por mes.

Costos de lecturas y escrituras
Costo total mensual = USD 11.10
Total de 400,000 lecturas diarias =   50,000 lecturas GRATIS + (350,000 lecturas a USD 0.06 por 100,000) =   3.5 * USD 0.06
USD 0.21 por día * 30 = USD 6.30
 
Total de 100,000 escrituras diarias =   20,000 escrituras GRATIS + (80,000 escrituras a USD 0.18 por 100,000) =   0.8 * USD 0.18
USD 0.14 por día * 30 = USD 4.20
 
Total de 100,000 eliminaciones diarias =   20,000 eliminaciones GRATIS + (80,000 eliminaciones a USD 0.02 por 100,000) =   0.8 * USD 0.02
USD 0.02 por día * 30 = USD 0.60
Costos de almacenamiento y red
Costo total mensual = USD 1.04 por mes
20 KB por DAU de salida diaria * 5,000 DAU =   100 MB de salida diaria * 30 =   3 GB de salida de red mensual
3 GB de salida GRATIS = GRATIS1
 
15 KB de almacenamiento diario de mensajes por DAU + 3 KB de almacenamiento por instalación2 =   45 KB de almacenamiento por DAU * 5,000 DAU =   225 MB de almacenamiento diario por DAU * 30 =   6.75 GB de uso de almacenamiento mensual
1 GB de almacenamiento GRATIS + (5.75 * USD 0.18) = USD 1.04 por mes

1 Existe un límite de 10 GB de salida de red mensual sin costo para Cloud Firestore.
2 Debido a que suponemos que los DAU son el 10% del total de las instalaciones de la app, esta cantidad corresponde al total de usuarios que instalaron la app.

Medio
(1,000,000 de instalaciones)

Por 1,000,000 de instalaciones de la app (100,000 usuarios activos diarios): USD 292.02 por mes

Costos de lecturas y escrituras
Costo total mensual = USD 261.90
Total de 8,000,000 de lecturas diarias =   50,000 lecturas GRATIS + (7,950,000 lecturas a USD 0.06 por 100,000) =   79.5 * USD 0.06
USD 4.77 por día * 30 = USD 143.10
 
Total de 2,000,000 de escrituras diarias =   20,000 escrituras GRATIS + (1,980,000 escrituras a USD 0.18 por 100,000) =   19.8 * USD 0.18
USD 3.56 por día * 30 = USD 106.80
 
Total de 2,000,000 de eliminaciones diarias =   20,000 eliminaciones GRATIS + (1,980,000 eliminaciones a USD 0.02 por 100,000) =   19.8 * USD 0.02
USD 0.40 por día * 30 = USD 12.00
Costos de almacenamiento y red
Costo total mensual = USD 30.12
20 KB por DAU de salida diaria * 100,000 DAU =   2 GB de salida diaria * 30 =   60 GB de salida de red mensual
10 GB de salida GRATIS + (50 GB de salida * USD 0.12 por GB) = USD 6.00 por mes
 
15 KB de almacenamiento diario de mensajes por DAU + 3 KB de almacenamiento por instalación1 =   45 KB de almacenamiento por DAU * 100,000 DAU =   4.5 GB de almacenamiento diario por DAU * 30 =   135 GB de uso de almacenamiento mensual
1 GB de almacenamiento GRATIS + (134 GB * USD 0.18 por GB) = USD 24.12 por mes

2 Debido a que suponemos que los DAU corresponden al 10% del total de las instalaciones de la app, esta cantidad equivale al total de usuarios que instalaron la app.

Grande
(10,000,000 de instalaciones)

Por 10,000,000 de instalaciones de la app (1,000,000 de usuarios activos diarios): USD 2,951.52

Costos de lecturas y escrituras
Costo total mensual = Total: USD 2,637.90
Total de 80,000,000 de lecturas diarias =   50,000 lecturas GRATIS + (79,950,000 lecturas a USD 0.06 por 100,000) =   799.5 * USD 0.06
USD 47.97 por día * 30 = USD 1,439.10
 
Total de 20,000,000 de escrituras diarias =   20,000 escrituras GRATIS + (19,980,000 escrituras a USD 0.18 por 100,000) =   199.8 * USD 0.18
USD 35.96 por día * 30 = USD 1,078.80
 
Total de 20,000,000 de eliminaciones diarias =   20,000 eliminaciones GRATIS + (19,980,000 eliminaciones a USD 0.02 por 100,000) =   199.8 * USD 0.02
USD 4.00 por día * 30 = USD 120.00
Costos de almacenamiento y red
Costo total mensual = USD 313.62
20 KB por DAU de salida diaria * 1,000,000 de DAU =   20 GB de salida diaria * 30 =   600 GB de salida de red mensual
10 GB de salida GRATIS + (590 GB de salida * USD 0.12 por GB) = USD 70.80 por mes
 
15 KB de almacenamiento diario de mensajes por DAU + 3 KB de almacenamiento por instalación1 =   45 KB de almacenamiento por DAU * 1,000,000 de DAU =   45 GB de almacenamiento diario por DAU * 30 =   1,350 GB de uso de almacenamiento mensual
(1 GB de almacenamiento GRATIS) + (1,349 GB * USD 0.18 por GB) = USD 242.82 por mes

2 Debido a que suponemos que los DAU corresponden al 10% del total de las instalaciones de la app, esta cantidad equivale al total de usuarios que instalaron la app.

Un beneficio importante del modelo de facturación de Cloud Firestore es que solo pagas lo que usas. Por lo tanto, es posible que el valor de tu factura aumente o disminuya en función del recuento de DAU.

Desglose: Uso facturado por tarea de usuario

A continuación, se muestra la estructura de datos de nuestra app de chat de ejemplo:

  • users/{userId}: Registros de usuario
  • groups/{groupId}: Chats entre 2 o más usuarios
    • messages/{messageId}: Cada mensaje en un chat

Almacenamiento de datos

Para calcular los costos de almacenamiento de los datos de la app, ten en cuenta estas suposiciones sobre el tamaño de los documentos:

Colección Tamaño del documento (en tránsito) Tamaño del documento (en disco)*
users 1 KB 3 KB
groups 0.5 KB 1.5 KB
messages 0.25 KB 0.75 KB

* Este cálculo incluye los índices de los campos de mensaje, pero supone que la indexación está inhabilitada para este tipo de contenido.

Para reducir los costos de almacenamiento, la app solo almacena mensajes de hasta tres meses de antigüedad.

Si quieres obtener más información sobre los costos de almacenamiento, consulta Comprende los cálculos del tamaño de almacenamiento.

Operaciones

Los usuarios suelen realizar las siguientes tareas comunes en la app:

  • Ver la lista de chats: Los usuarios abren la pantalla principal de la app y ven una lista de chats (directos y grupales) ordenada por la fecha de publicación del mensaje más reciente.
  • Leer los mensajes de un chat: Los usuarios seleccionan los chats de la pantalla principal y leen los mensajes recientes.
  • Enviar un mensaje a un chat: Los usuarios envían mensajes a los chats (directos o grupales).

A continuación, se indica el total de las operaciones estimadas de la app en Cloud Firestore para las tres tareas comunes que realizan los usuarios:

  • Lecturas: (5 * 10) + (30) = 80 lecturas diarias por usuario
  • Escrituras: (10 * 2) = 20 escrituras diarias por usuario
  • Salida de red: (50 * 0.25 KB) + (30 * 0.25 KB) = 20 KB diarios por usuario
  • Almacenamiento: (20 * 0.75 KB) = 15 KB diarios por usuario

Uso total por tarea de usuario

Selecciona cada tarea de usuario para ver una descripción y un desglose completo de los costos de operaciones, almacenamiento y red en la app.

Ver la lista de chats

En la pantalla principal de la app, se cargan los 25 chats más recientes y, por tanto, se aplican cargos por 25 lecturas de documentos. Debes suponer que un usuario activo abre la app 5 veces al día, lo que equivale a un total de 125 lecturas diarias. Sin embargo, las consultas más eficientes, como la de este ejemplo, pueden reducir esa carga.

En el ejemplo, limitamos la consulta a chats nuevos con una marca de tiempo de cada recuperación exitosa almacenada en la app:

db.collection('groups')
  .where('participants', 'array-contains', 'user123')
  .where('lastUpdated', '>', lastFetchTimestamp)
  .orderBy('lastUpdated', 'desc')
  .limit(25)

Supongamos que tenemos un promedio de 10 chats actualizados cada vez que un usuario consulta la app. Esta consulta solo genera 10 lecturas de documento.

Leer los mensajes en el chat

En la pantalla principal, los usuarios pueden hacer clic en los chats a fin de ver los mensajes recientes, que serán los 50 más actuales en la carga inicial.

Debes suponer que un usuario común realiza esta acción 5 veces por día (es decir, por cada vez que ingresa a la pantalla principal), lo que generará un total de 250 lecturas diarias por usuario. También podemos limitar nuestra consulta a mensajes nuevos a partir de la última fecha de recuperación, como se muestra a continuación:

db.collection('groups')
  .doc('group234')
  .collection('messages')
  .where('sentTime', '>', lastFetchTimestamp)
  .orderBy('sentTime', 'desc')
  .limit(50)

Supongamos que un usuario recibe aproximadamente 30 mensajes diarios de todos los chats. Debido a que limitaste la consulta a la búsqueda de mensajes nuevos, solo se recuperarán 30 mensajes al día.

Enviar un mensaje a un chat

Los usuarios pueden enviar mensajes a otros participantes cuando están en un chat. Debes suponer que un usuario activo envía aproximadamente 10 mensajes diarios.

Cada mensaje enviado generará dos escrituras de documento: una en la subcolección messages del chat y otra en el documento principal del chat a fin de actualizar la marca de tiempo lastUpdated y otros metadatos.

Ten en cuenta que se contabilizó el costo de lectura de los mensajes en los otros procesos, por lo que los totales que aparecen a continuación solo consideran este costo de escritura:

Beneficios incluidos: servicios sin costo para tu app

Aunque las operaciones, el almacenamiento y el ancho de banda de la red de Cloud Firestore se consideran en el uso por facturar, también puedes acceder a otros beneficios sin costo. Si quieres comparar Cloud Firestore con otras opciones de bases de datos, ten en cuenta estos servicios gratuitos:

  • Acceso directo al cliente: Se puede acceder a Cloud Firestore directamente desde tu código de cliente con nuestros SDK nativos. Es decir, no necesitas compilar ni ejecutar un servidor de API a fin de conectar tus clientes de dispositivos móviles con la base de datos.
  • Balanceo de cargas: No necesitas ejecutar un balanceador de cargas, ya que Cloud Firestore se ajusta automáticamente para admitir el tráfico a tu base de datos.
  • Tiempo de actividad del servidor: Las bases de datos de Cloud Firestore operan en los servidores de Google Cloud Platform y ofrecen un tiempo de actividad mensual superior al 99%.
  • Autenticación: Puedes autenticar usuarios ilimitados de manera sencilla y segura con Firebase Authentication. Firebase Authentication se integra directamente a Cloud Firestore para que no tengas que ejecutar tu propio servicio de autenticación.
  • Notificaciones push: Envía mensajes y notificaciones con Cloud Messaging.
  • Otros productos de Firebase: Integra otros productos de Firebase, como A/B Testing, Analytics, Crashlytics, Performance Monitoring, Predictions y Remote Config. Obtén más información sobre otros productos y los precios de Firebase.