Catch up on everything announced at Firebase Summit, and learn how Firebase can help you accelerate app development and run your app with confidence. Learn More

Comprender la facturación de la base de datos en tiempo real

Organiza tus páginas con colecciones Guarda y categoriza el contenido según tus preferencias.

Firebase factura los datos que almacena en su base de datos y todo el tráfico de red saliente en la capa de sesión (capa 5) del modelo OSI. El almacenamiento se factura a $5 por cada GB/mes, evaluado diariamente. La facturación no se ve afectada por la ubicación de su base de datos. El tráfico saliente incluye la sobrecarga de conexión y cifrado de todas las operaciones de la base de datos y los datos descargados a través de las lecturas de la base de datos. Tanto las lecturas como las escrituras de la base de datos pueden generar costos de conexión en su factura. Todo el tráfico hacia y desde su base de datos, incluidas las operaciones denegadas por las reglas de seguridad, genera costos facturables.

Algunos ejemplos comunes de tráfico facturado incluyen:

  • Datos descargados: cuando los clientes obtienen datos de su base de datos, Firebase cobra por los datos descargados. Por lo general, esto constituye la mayor parte de sus costos de ancho de banda, pero no es el único factor en su factura.
  • Sobrecarga de protocolo: es necesario cierto tráfico adicional entre el servidor y los clientes para establecer y mantener una sesión. Según el protocolo subyacente, este tráfico puede incluir: la sobrecarga del protocolo en tiempo real de Firebase Realtime Database, la sobrecarga de WebSocket y la sobrecarga del encabezado HTTP. Cada vez que se establece una conexión, esta sobrecarga, combinada con cualquier sobrecarga de cifrado SSL, contribuye a los costos de conexión. Aunque esto no es mucho ancho de banda para una sola solicitud, puede ser una parte sustancial de su factura si sus cargas útiles son pequeñas o si realiza conexiones breves y frecuentes.
  • Sobrecarga de cifrado SSL: hay un costo asociado con la sobrecarga de cifrado SSL necesaria para conexiones seguras. En promedio, este costo es de aproximadamente 3,5 KB para el protocolo de enlace inicial y aproximadamente decenas de bytes para los encabezados de registro TLS en cada mensaje saliente. Para la mayoría de las aplicaciones, este es un pequeño porcentaje de su factura. Sin embargo, esto puede convertirse en un gran porcentaje si su caso específico requiere muchos protocolos de enlace SSL. Por ejemplo, los dispositivos que no admiten vales de sesión TLS pueden requerir una gran cantidad de protocolos de enlace de conexión SSL.
  • Datos de la consola de Firebase: aunque esto no suele ser una parte significativa de los costos de Realtime Database, Firebase cobra por los datos que lee y escribe desde la consola de Firebase.

Calcule su uso facturado

Para ver sus conexiones y uso de datos actuales de Realtime Database, consulte la pestaña Uso en la consola de Firebase. Puede verificar el uso durante el período de facturación actual, los últimos 30 días o las últimas 24 horas.

Firebase muestra estadísticas de uso para las siguientes métricas:

  • Conexiones: el número de conexiones simultáneas, actualmente abiertas y en tiempo real a su base de datos. Esto incluye las siguientes conexiones en tiempo real: WebSocket, sondeo largo y eventos enviados por el servidor HTML. No incluye solicitudes RESTful.
  • Almacenamiento: cuántos datos se almacenan en su base de datos. Esto no incluye el alojamiento de Firebase ni los datos almacenados a través de otros productos de Firebase.
  • Descargas: todos los bytes descargados de su base de datos, incluido el protocolo y la sobrecarga de cifrado.
  • Carga: este gráfico muestra cuánto de su base de datos está en uso, procesando solicitudes, durante un intervalo determinado de 1 minuto. Es posible que vea problemas de rendimiento a medida que su base de datos se acerca al 100 %.

optimizar el uso

Hay algunas mejores prácticas que puede emplear para optimizar el uso de su base de datos y los costos de ancho de banda.

  • Use los SDK nativos: siempre que sea posible, use los SDK que correspondan a la plataforma de su aplicación, en lugar de la API REST. Los SDK mantienen conexiones abiertas, lo que reduce los costos de cifrado SSL que normalmente se acumulan con la API REST.
  • Verifique si hay errores: si sus costos de ancho de banda son inesperadamente altos, verifique que su aplicación no esté sincronizando más datos o sincronizando con más frecuencia de lo que originalmente pretendía. Para identificar problemas, use la herramienta Profiler para medir sus operaciones de lectura y active el registro de depuración en los SDK de Android , Objective-C y Web . Verifique los procesos en segundo plano y de sincronización en su aplicación para asegurarse de que todo funcione como esperaba.
  • Reduce las conexiones: Si es posible, trata de optimizar el ancho de banda de tu conexión. Las solicitudes REST pequeñas y frecuentes pueden ser más costosas que una única conexión continua con el SDK nativo. Si usa la API REST, considere usar eventos HTTP keep-alive o enviados por el servidor , que pueden reducir los costos de los protocolos de enlace SSL.
  • Use vales de sesión TLS: reduzca los costos generales de cifrado SSL en conexiones reanudadas mediante la emisión de vales de sesión TLS . Esto es particularmente útil si necesita conexiones frecuentes y seguras a la base de datos.
  • Consultas de indexación : la indexación de sus datos reduce el ancho de banda total que utiliza para las consultas, lo que tiene el doble beneficio de reducir sus costos y aumentar el rendimiento de su base de datos. Utilice la herramienta Profiler para encontrar consultas no indexadas en su base de datos.
  • Optimice sus oyentes: agregue consultas para limitar los datos que devuelven sus operaciones de escucha y use oyentes que solo descargan actualizaciones de datos, por ejemplo, on() en lugar de once() . Además, coloque a sus oyentes lo más lejos posible en la ruta para limitar la cantidad de datos que sincronizan.
  • Reduzca los costos de almacenamiento: ejecute trabajos de limpieza periódicos y reduzca los datos duplicados en su base de datos.
  • Reglas de uso: Evite cualquier operación no autorizada potencialmente costosa en su base de datos. Por ejemplo, el uso de las reglas de la base de datos en tiempo real de Firebase podría evitar una situación en la que un usuario malintencionado descargue repetidamente toda su base de datos. Obtenga más información sobre el uso de las reglas de la base de datos en tiempo real de Firebase .

El mejor plan de optimización para su aplicación depende de su caso de uso particular. Si bien esta no es una lista exhaustiva de mejores prácticas, puede encontrar más consejos y sugerencias de los expertos de Firebase en nuestro canal de Slack o en Stack Overflow .