Vea un ejemplo de precios de Cloud Firestore

Utilice este ejemplo del mundo real de una aplicación de chat básica para evaluar el uso y los costos de Cloud Firestore. Esta no es una estimación exacta, pero puede ayudarte a comprender mejor cómo se factura el uso de Cloud Firestore.

Resumen: costos por nivel de uso

Para ilustrar los costos típicos, considere una aplicación de chat de ejemplo, donde los usuarios pueden iniciar chats con dos o más participantes. Los usuarios pueden ver sus chats activos en una lista, leer mensajes y enviar mensajes. Para este ejemplo, utilizamos precios para la región múltiple de América del Norte (específicamente nam5 ).

Suposiciones

Considere las siguientes suposiciones sobre el uso y el almacenamiento de datos:

  • Los usuarios activos diarios (DAU) representan el 10% del total de instalaciones de aplicaciones. Puede estimar sus costos diarios utilizando una estimación aproximada de sus usuarios activos diarios (DAU). Estos son los usuarios que abren y utilizan activamente su aplicación en un día determinado, que suele ser un pequeño subconjunto del total de instalaciones de su aplicación. Para los cálculos siguientes, estimamos que las DAU representan el 10 % del número total de instalaciones de aplicaciones.
  • Los tamaños de los documentos son relativamente pequeños. Consulte la siguiente tabla para obtener un desglose del tamaño del documento por tipo.
  • Los datos solo se almacenan durante tres meses. Los mensajes de la aplicación de chat de ejemplo sólo se almacenan durante un período de tres meses. Para tener en cuenta las operaciones de eliminación, los cálculos siguientes muestran una eliminación diaria por cada escritura diaria.
  • Estas estimaciones de costos reflejan la mayor parte de los costos de la aplicación de ejemplo, pero no todos. Hemos contabilizado la mayor parte de los costos de una aplicación calculando las operaciones, el almacenamiento de mensajes y usuarios y la salida para las tareas de usuario más frecuentes descritas en esta guía. Sin embargo, es posible que deba tener en cuenta costos adicionales, según la estructura de su aplicación y las necesidades de datos. Utilice este ejemplo para guiar sus cálculos, pero consulte la página de precios para obtener explicaciones más detalladas de los costos de Cloud Firestore.

Para obtener un desglose de las operaciones por tarea de usuario, consulte la sección Desglose: uso facturado por tarea de usuario .

Pequeño
(50.000 instalaciones)

Para 50.000 instalaciones de aplicaciones (5.000 usuarios activos diarios): $12,14/mes

Costos de lectura/escritura
Costo mensual total = $11,10/mes
400.000 lecturas diarias totales = 50 000 lecturas sin costo + (350 000 lecturas a $0,06/100 000) = 3,5 * $0,06
$0,21 / día * 30 = $6,30
100.000 escrituras diarias en total = 20 000 escrituras sin costo + (80 000 escrituras a $0,18/100 000) = .8 * $0.18
$0,14/día * 30 = $4,20
100.000 eliminaciones diarias en total = 20 000 eliminaciones sin costo + (80 000 eliminaciones a $0,02/100 000) = .8 * $0.02
$0,02/día * 30 = $0,60
Costos de almacenamiento/redes
Costo mensual total = $1,04/mes
20KB/DAU de salida diaria * 5K DAU = 100MB de salida diaria * 30 = Salida de red mensual de 3GB
3 GB Salida sin costo = Sin costo 1
Almacenamiento de mensajes diarios de 15 KB / DAU + almacenamiento de 3 KB / instalación 2 = 45 KB de almacenamiento/DAU * 5K DAU = 225 MB de almacenamiento diario / DAU * 30 = Uso de almacenamiento mensual de 6,75 GB
1 GB de almacenamiento sin costo + (5,75 * $0,18) = $1,04 / mes

1 10 GB de salida de red mensual no tienen costo para Cloud Firestore.
2 Dado que suponemos que las DAU representan el 10 % del total de instalaciones de aplicaciones, este número representa el número total de usuarios que han instalado su aplicación.

Medio
(1 millón de instalaciones)

Por 1.000.000 de instalaciones de aplicaciones (100.000 usuarios activos diarios): $292,02/mes

Costos de lectura/escritura
Costo mensual total = $261,90/mes
8 millones de lecturas diarias totales = 50 000 lecturas sin costo + (7,95 millones de lecturas a $0,06/100 000) = 79,5 * $0,06
$4,77 / día * 30 = $143,10
2 millones de escrituras diarias totales = 20 000 escrituras sin costo + (1,98 millones de escrituras a $0,18/100 000) = 19,8 * $0,18
$3.56 / día * 30 = $106.80
2 millones de eliminaciones diarias totales = 20.000 eliminaciones sin coste + (1,98 millones de eliminaciones a 0,02 USD/100.000) = 19,8 * $0,02
$0.40 / día * 30 = $12.00
Costos de almacenamiento/redes
Costo mensual total = $30,12/mes
20KB/DAU de salida diaria * 100K DAU = 2GB de salida diaria * 30 = Salida de red mensual de 60 GB
10 GB de salida sin costo + (50 GB de salida * $0,12/GB) = $6,00/mes
Almacenamiento de mensajes diarios de 15 KB / DAU + almacenamiento de 3 KB / instalación 1 = 45 KB de almacenamiento/DAU * 100 000 DAU = 4,5 GB de almacenamiento diario / DAU * 30 = Uso de almacenamiento mensual de 135 GB
1 GB de almacenamiento sin costo + (134 GB * $0,18/GB) = $24,12 / mes

1 Dado que suponemos que las DAU representan el 10 % del total de instalaciones de aplicaciones, este número representa el número total de usuarios que han instalado su aplicación.

Grande
(10 millones de instalaciones)

Por 10.000.000 de instalaciones de aplicaciones (1.000.000 de usuarios activos diarios): $2951,52

Costos de lectura/escritura
Costo mensual total = Total: $2637.90/mes
80 millones de lecturas diarias totales = 50 000 lecturas sin costo + (79,95 millones de lecturas a $0,06/100 000) = 799,5 * $0,06
$47.97 / día * 30 = $1439.10
20 millones de escrituras diarias en total = 20 000 escrituras sin costo + (19,98 millones de escrituras a $0,18/100 000) = 199,8 * 0,18 dólares
$35.96 / día * 30 = $1078.80
20 millones de eliminaciones diarias totales = 20 000 eliminaciones sin costo + (19,98 millones de eliminaciones a $0,02/100 000) = 199,8 * $0,02
$4.00 / día * 30 = $120.00
Costos de almacenamiento/redes
Costo mensual total = $313,62/mes
20 KB/DAU de salida diaria * 1 millón de DAU = 20GB de salida diaria * 30 = Salida de red mensual de 600 GB
10 GB de salida sin costo + (590 GB de salida * $0,12/GB) = $70,80/mes
Almacenamiento de mensajes diarios de 15 KB / DAU + almacenamiento de 3 KB / instalación 1 = 45 KB de almacenamiento/DAU * 1 millón de DAU = 45 GB de almacenamiento diario / DAU * 30 = Uso de almacenamiento mensual de 1350 GB
(1 GB de almacenamiento sin costo) + (1349 GB * $0,18/GB) = $242,82 / mes

1 Dado que suponemos que las DAU representan el 10 % del total de instalaciones de aplicaciones, este número representa el número total de usuarios que han instalado su aplicación.

Un beneficio del modelo de facturación de Cloud Firestore que vale la pena considerar es que solo paga por lo que usa. Como resultado, su factura puede aumentar y reducirse con su recuento de DAU.

Desglose: uso facturado por tarea de usuario

Para nuestra aplicación de chat de ejemplo, la estructura de datos es la siguiente:

  • 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 aplicación, aplique las siguientes suposiciones sobre los tamaños de los documentos:

Recopilación Tamaño del documento (en tránsito) Tamaño del documento (en disco)*
usuarios 1 KB 3 KB
grupos 0,5 KB 1,5 KB
mensajes 0.25KB 0,75 KB

*Este cálculo de tamaño incluye índices para los campos del mensaje, pero supone que la indexación está deshabilitada para el contenido del mensaje.

La aplicación también almacena sólo mensajes que tienen hasta tres meses de antigüedad, para reducir los costos de almacenamiento.

Para obtener más información sobre cómo calcular los costos de almacenamiento, consulte Comprender los cálculos del tamaño de almacenamiento .

Operaciones

Los usuarios suelen completar las siguientes tareas comunes en la aplicación:

  • Ver la lista de chats: los usuarios abren la pantalla de inicio de la aplicación y ven una lista de chats (grupales y directos) ordenados por el mensaje publicado más reciente.
  • Leer mensajes en un chat: los usuarios seleccionan chats desde la pantalla de inicio y leen mensajes recientes de los chats.
  • Enviar un mensaje a un chat: Los usuarios envían mensajes a chats (grupales o directos).

Las operaciones totales estimadas de la aplicación de ejemplo en Cloud Firestore para las tres tareas típicas del usuario son las siguientes:

  • Lecturas: (5 * 10) + (30) = 80 lecturas/usuario/día
  • Escrituras: (10 * 2) = 20 escrituras/usuario/día
  • Salida de red : (50 * 0,25 KB) + (30 * 0,25 KB) = 20 KB/usuario/día
  • Almacenamiento : (20 * 0,75 KB) = 15 KB/usuario/día

Uso total por tarea de usuario

Seleccione cada tarea de usuario para ver una descripción completa y un desglose de los costos de operaciones, almacenamiento y redes en la aplicación.

Ver la lista de chats

La pantalla de inicio de la aplicación carga los 25 chats más recientes, generando cargos por 25 lecturas de documentos. Supongamos que un usuario activo abre la aplicación 5 veces al día, con un total de 125 lecturas por usuario cada día. Sin embargo, consultas más eficientes, como la del siguiente ejemplo, pueden reducir esta carga.

En el siguiente ejemplo, limitamos la consulta a nuevos chats usando una marca de tiempo de cada recuperación exitosa, almacenada por la aplicación:

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

Supongamos que hay un promedio de 10 chats actualizados cada vez que el usuario revisa la aplicación. Esta consulta solo genera 10 lecturas de documentos.

Leer mensajes en un chat

Los usuarios hacen clic en los hilos de chat desde la pantalla de inicio para ver los mensajes recientes y cargan los 50 mensajes más recientes en la carga inicial.

Supongamos que el usuario típico realiza esta acción 5 veces al día (una vez cada vez que abre la pantalla de inicio), lo que genera un total de 250 lecturas por usuario cada día. También podemos limitar nuestra consulta a mensajes nuevos desde la última vez que se recuperaron:

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

Supongamos que un usuario recibe alrededor de 30 mensajes al día en todos los chats. Dado que ha limitado la consulta para recuperar mensajes nuevos, esto se traduce en solo 30 mensajes recuperados por día.

Enviar un mensaje a un chat

Los usuarios pueden enviar mensajes a otros participantes una vez que están en un chat. Supongamos que un usuario activo envía alrededor de 10 mensajes por día.

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

Tenga en cuenta que el costo de leer estos mensajes se ha contabilizado en los otros viajes, por lo que los totales a continuación solo consideran este costo de escritura.

Uso facturado para tareas de administrador

Como propietario o administrador de una aplicación, probablemente desee generar informes a partir de los datos de su aplicación. Por ejemplo, es posible que desee llevar un recuento diario de la cantidad de mensajes enviados por sus usuarios. Puede lograr esto con una agregación count() del grupo de recopilación messages .

Para consultas de agregación como count() , se le cobra un documento leído por cada lote de hasta 1000 entradas de índice que coincidan con la consulta. La ejecución de esta agregación diaria agrega los siguientes cargos mensuales:

Pequeño
(50.000 instalaciones)

Para 50 000 instalaciones de aplicaciones (5000 DAU): $0,0009/mes

5000 usuarios activos * 10 mensajes nuevos por usuario = 50 000 documentos de mensajes nuevos por día

50.000 documentos contados/1.000 coincidencias de índice por carga de lectura = 50 lecturas

50 lecturas por día * 30 días = 1500 lecturas por mes

1500 lecturas por mes * 0,06/100 000 precio de lectura = $0,0009 por mes

Medio
(1 millón de instalaciones)

Por 1.000.000 de instalaciones de aplicaciones (100.000 usuarios activos diarios): $0,018/mes

100.000 usuarios activos * 10 mensajes nuevos por usuario = 1.000.000 documentos de mensajes nuevos por día

1.000.000 de documentos contados / 1.000 coincidencias de índice por cargo de lectura = 1.000 lecturas

1000 lecturas por día * 30 días = 30 000 lecturas por mes

30.000 lecturas por mes * 0,06/100.000 precio de lectura = 0,018 dólares por mes

Grande
(10 millones de instalaciones)

Por 10 000 000 de instalaciones de aplicaciones (1 000 000 de usuarios activos diarios): $0,18

1.000.000 de usuarios activos * 10 mensajes nuevos por usuario = 10.000.000 documentos de mensajes nuevos por día

10.000.000 documentos contados / 1.000 coincidencias de índice por cargo de lectura = 10.000 lecturas

10.000 lecturas por día * 30 días = 300.000 lecturas por mes

300.000 lecturas por mes * 0,06/100000 precio de lectura = 0,18 dólares por mes

Beneficios incluidos: Servicios sin costo para tu aplicación

Si bien las operaciones, el almacenamiento y el ancho de banda de la red de Cloud Firestore se consideran uso facturable, también obtienes una variedad de otros beneficios sin costo adicional. Considere los siguientes servicios que no tienen costo al comparar Cloud Firestore con otras opciones de bases de datos:

  • Acceso directo al cliente: se accede a Cloud Firestore directamente desde su código de cliente utilizando nuestros SDK nativos. Esto significa que no necesita crear y ejecutar un servidor API para conectar sus clientes móviles a la base de datos.
  • Equilibrio de carga: dado que Cloud Firestore se escala automáticamente para admitir el tráfico a su base de datos, no es necesario ejecutar un equilibrador de carga.
  • Tiempo de actividad del servidor: las bases de datos de Cloud Firestore operan en servidores de Google Cloud y ofrecen más del 99 % de tiempo de actividad mensual .
  • Autenticación: autentique usuarios ilimitados de forma sencilla y segura con Firebase Authentication . Firebase Authentication se integra directamente con Cloud Firestore, por lo que no es necesario ejecutar su propio servicio de autenticación.
  • Notificaciones push: envía mensajes y notificaciones con Cloud Messaging .
  • Otros productos de Firebase: integre otros productos de Firebase sin costo, incluidos A/B Testing, Analytics, Crashlytics, Performance Monitoring y Remote Config. Obtenga más información sobre otros productos de Firebase y los precios de Firebase .