获取我们在 Firebase 峰会上发布的所有信息,了解 Firebase 可如何帮助您加快应用开发速度并满怀信心地运行应用。了解详情

Vea un ejemplo de precios de Cloud Firestore

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

Descripción general: 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, estamos usando 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 la aplicación. Puede estimar sus costos diarios utilizando una estimación aproximada de sus usuarios activos diarios (DAU). Estos son los usuarios que abren y usan activamente su aplicación en un día determinado, que suele ser un pequeño subconjunto de las instalaciones totales de su aplicación. Para los cálculos a continuación, estimamos los DAU como el 10 % de la cantidad total de instalaciones de la aplicación.
  • Los tamaños de los documentos son relativamente pequeños. Consulte la siguiente tabla para ver un desglose del tamaño del documento por tipo.
  • Los datos solo se almacenan durante tres meses. Los mensajes en la aplicación de chat de ejemplo solo se almacenan durante un período de tres meses. Para tener en cuenta las operaciones de eliminación, los cálculos a continuación 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 tenido en cuenta la mayor parte de los costos de una aplicación al calcular las operaciones, el almacenamiento de mensajes y usuarios, y la salida de 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ña
(50k instalaciones)

Por 50 000 instalaciones de la aplicación (5000 usuarios activos diarios): $12,14/mes

Costos de lectura/escritura
Costo mensual total = $11.10/mes
400K 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
100K escrituras diarias totales = 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 totales = 20 000 eliminaciones sin costo + (80 000 eliminaciones a 0,02 USD/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 = 100 MB de salida diaria * 30 = Salida de red mensual de 3GB
3 GB de salida sin costo = sin costo 1
15 KB de almacenamiento diario de mensajes/DAU + 3 KB de almacenamiento/instalación 2 = 45KB de almacenamiento/DAU * 5K DAU = 225 MB de almacenamiento diario / DAU * 30 = Uso de almacenamiento mensual de 6,75 GB
1GB de almacenamiento sin costo + (5.75 * $0.18) = $1.04 / mes

1 10 GB de salida de red mensual sin costo para Cloud Firestore.
2 Dado que suponemos que las DAU representan el 10 % del total de instalaciones de la aplicación, esta cifra representa la cantidad total de usuarios que instalaron 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 costo + (1,98 millones de eliminaciones a $0,02/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 = 2 GB de salida diaria * 30 = Salida de red mensual de 60 GB
10 GB de salida sin costo + (50 GB de salida * 0,12 USD/GB) = 6,00 USD al mes
15 KB de almacenamiento diario de mensajes/DAU + 3 KB de almacenamiento/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 gratuito + (134 GB * 0,18 USD/GB) = 24,12 USD al mes

1 Dado que suponemos que las DAU representan el 10 % del total de instalaciones de la aplicación, esta cifra representa la cantidad total de usuarios que instalaron su aplicación.

Largo
(10 millones de instalaciones)

Por 10 000 000 de instalaciones de la aplicación (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 totales = 20 000 escrituras sin costo + (19,98 millones de escrituras a 0,18 USD/100 000) = 199.8 * $0.18
$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 = 20 GB de salida diaria * 30 = Salida de red mensual de 600 GB
10 GB de salida sin costo + (590 GB de salida * 0,12 USD/GB) = 70,80 USD al mes
15 KB de almacenamiento diario de mensajes/DAU + 3 KB de almacenamiento/instalación 1 = 45 KB de almacenamiento/DAU * 1 millón de DAU = 45GB de almacenamiento diario / DAU * 30 = Uso de almacenamiento mensual de 1350 GB
(1GB de almacenamiento sin costo) + (1349GB * $0.18/GB) = $242.82 / mes

1 Dado que suponemos que las DAU representan el 10 % del total de instalaciones de la aplicación, esta cifra representa la cantidad total de usuarios que instalaron 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 crecer 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 usuarios
  • 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 para almacenar 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 3KB
grupos 0.5KB 1.5KB
mensajes 0.25KB 0.75KB

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

La aplicación también almacena solo 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 Comprensión de los cálculos de tamaño de almacenamiento .

Operaciones

Los usuarios normalmente completan 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 último mensaje publicado.
  • Leer mensajes en un chat: los usuarios seleccionan chats desde la pantalla de inicio y leen los mensajes recientes de los chats.
  • Enviar un mensaje a un chat: los usuarios envían mensajes a los chats (grupales o directos).

Las operaciones estimadas totales de la aplicación de ejemplo en Cloud Firestore para las tres tareas de usuario típicas 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, lo que genera cargos por 25 lecturas de documentos. Suponga 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 utilizando 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)

Suponga que hay un promedio de 10 chats actualizados cada vez que el usuario revisa la aplicación. Esta consulta solo incurre en 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, cargando los 50 mensajes más recientes en la carga inicial.

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

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

Suponga que un usuario recibe alrededor de 30 mensajes al día en todos los chats. Dado que ha limitado la consulta para obtener nuevos mensajes, 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. Suponga que un usuario activo envía alrededor de 10 mensajes por día.

Cada mensaje enviado generará dos escrituras de documentos: una escritura en la subcolección de messages del chat y una escritura en el documento principal del chat para actualizar la lastUpdated marca de tiempo actualizada 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.

Beneficios incluidos: Servicios sin costo para su 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 obtiene 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 del 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 que ejecute un equilibrador de carga.
  • Tiempo de actividad del servidor: las bases de datos de Cloud Firestore funcionan en los servidores de Google Cloud y ofrecen más del 99 % de tiempo de actividad mensual .
  • Autenticación: Autentique usuarios ilimitados de manera simple y segura con Firebase Authentication . Firebase Authentication se integra directamente con Cloud Firestore, por lo que no necesita 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.