Cómo elegir tu base de datos: Cloud Firestore o Realtime Database

Firebase ofrece dos soluciones de bases de datos en la nube y accesibles para los clientes que admite sincronización de datos en tiempo real:

  • Realtime Database es la base de datos original de Firebase. Es una solución eficiente de baja latencia para las apps para dispositivos móviles que necesitan estados sincronizados entre los clientes en tiempo real.
  • Cloud Firestore es la nueva base de datos insignia de Firebase para la programación de apps para dispositivos móviles. Aprovecha lo mejor de Realtime Database con un nuevo modelo de datos más intuitivo. Cloud Firestore también cuenta con consultas más ricas y rápidas y su escala se ajusta mejor que Realtime Database.

¿Qué base de datos es adecuada para tu proyecto?

Si estás cómodo con un producto en versión Beta, usa Cloud Firestore para los nuevos proyectos. Cloud Firestore ofrece más funciones, rendimiento y escalabilidad en una infraestructura diseñada para admitir funciones más potentes en las próximas versiones. Habrá nuevos tipos de consultas, reglas de seguridad más sólidas y mejoras en el rendimiento entre las funciones avanzadas planificadas para Cloud Firestore.

Cuando elijas una solución de base de datos, toma en cuenta las siguientes diferencias entre Cloud Firestore y Realtime Database.

Modelo de datos

Tanto Realtime Database como Cloud Firestore son bases de datos NoSQL.

Realtime Database Cloud Firestore
Almacena datos como un gran árbol JSON
  • Los datos simples son muy fáciles de almacenar.
  • Los datos complejos y jerárquicos son más difíciles de organizar a escala.

Obtén más información sobre el modelo de datos de Realtime Database.

Almacena datos en documentos organizados en colecciones
  • Los datos simples son fáciles de almacenar en documentos, que son muy similares a JSON.
  • Los datos complejos y jerárquicos son más fáciles de organizar a escala, con subcolecciones dentro de los documentos.
  • Necesita menos desnormalización y compactación de datos.

Obtén más información sobre el modelo de datos de Cloud Firestore.

Compatibilidad sin conexión y en tiempo real

Ambos tienen SDK en tiempo real centrados en dispositivos móviles y ambos admiten el almacenamiento de datos locales para las apps que funcionan sin conexión.

Realtime Database Cloud Firestore
Compatibilidad sin conexión para clientes móviles solo en iOS y Android Compatibilidad sin conexión para iOS, Android y clientes web

Consultas

Recupera, ordena y filtra datos de ambas bases de datos mediante consultas.

Realtime Database Cloud Firestore
Consultas directas con funciones de ordenamiento y filtrado limitadas
  • Solo puedes ordenar o filtrar según una propiedad, no ordenar y filtrar, en una única consulta.
  • Las consultas son profundas de forma predeterminada: siempre dan como resultado el subárbol completo.
Consultas indexadas con ordenamiento y filtrado compuestos
  • Puedes encadenar filtros y combinar filtrado con ordenamiento según una propiedad en la misma consulta.
  • Escribe consultas superficiales para subcolecciones: Puedes consultar subcolecciones dentro de un documento en lugar de una colección entera o incluso un documento entero.
  • Las consultas se indexan de forma predeterminada: El rendimiento de las consultas es proporcional al tamaño del conjunto de resultados, no del conjunto de datos.

Escrituras y transacciones

Realtime Database Cloud Firestore
Operaciones básicas de escritura y transacción Operaciones atómicas de escritura y transacción

Confianza y rendimiento

Realtime Database Cloud Firestore
Realtime Database es un producto desarrollado
  • Ofrece la estabilidad de un producto muy probado y usado.
  • Muy baja latencia, por lo que es una excelente opción para la sincronización frecuente de estados.
  • Las bases de datos se limitan a la disponibilidad zonal en una sola región.
Obtén más información sobre las características de rendimiento y confianza de Realtime Database en el Acuerdo de nivel de servicio.
Cloud Firestore está en fase Beta
  • La estabilidad de un producto en fase Beta no siempre es la misma que la de un producto lanzado por completo.
  • Aloja los datos en varios centros de datos de distintas regiones, lo que garantiza una escalabilidad global y una confianza sólida.
  • Cuando Cloud Firestore pase la versión Beta, ofrecerá un mayor grado de confianza que Realtime Database.

Escalabilidad

Realtime Database Cloud Firestore
El escalamiento necesita fragmentación

Escala hasta alrededor de 100,000 conexiones concurrentes y 1,000 escrituras por segundo en una misma base de datos. Para realizar un escalamiento mayor que ese, se deben fragmentar los datos en distintas bases de datos.

El escalamiento será automático

La escala se ajusta de forma totalmente automática (después de la versión Beta), lo que significa que no es necesario que fragmentes los datos en varias instancias.

Seguridad

Realtime Database Cloud Firestore
Reglas en cascada que se deben validar por separado Seguridad más sencilla y potente para los SDK para dispositivos móviles, la Web y servidores
  • Los SDK para dispositivos móviles y la Web usan reglas de seguridad de Cloud Firestore. Los SDK para servidores usan la administración de identidades y accesos (IAM).
  • Las reglas no se aplican en cascada a menos que uses un comodín.
  • La validación de datos ocurre de forma automática.
  • Las reglas pueden restringir consultas: Si los resultados de una consulta pudiesen contener datos a los que el usuario no tiene acceso, la consulta completa falla.

Precios

Ambas soluciones están disponibles en los planes de precios Spark, Flame y Blaze.

Realtime Database Cloud Firestore
Se cobra solo por ancho de banda y almacenamiento, pero con una tarifa mayor.

Obtén más información sobre los planes de precios de Realtime Database.

Se cobra principalmente por operaciones ejecutadas en la base de datos (lecturas, escrituras y eliminaciones) y, con una tarifa menor, por ancho de banda y almacenamiento.

Cloud Firestore admite límites de gasto diarios para proyectos de Google App Engine, a fin de garantizar que no excedas los costos esperados.

Obtén más información sobre los planes de precios de Cloud Firestore.

Uso de Cloud Firestore y Realtime Database

Puedes usar ambas bases de datos dentro del mismo proyecto o la misma app de Firebase. Ambas bases de datos NoSQL pueden almacenar los mismos tipos de datos y las bibliotecas cliente funcionan de manera similar. Ten en cuenta las diferencias descritas anteriormente si decides usar ambas bases de datos en tu app.

Si quieres probar Cloud Firestore en su versión Beta, usa nuestra guía de introducción.

Para obtener más información sobre las funciones disponibles en Realtime Database, revisa la documentación de Realtime Database.

Enviar comentarios sobre…

¿Necesitas ayuda? Visita nuestra página de asistencia.