Firebase ofrece dos soluciones de bases de datos en la nube y accesibles para los clientes que admiten sincronización en tiempo real:
Cloud Firestore es la base de datos más reciente de Firebase para el desarrollo de apps para dispositivos móviles. Aprovecha lo mejor de Realtime Database con un modelo de datos nuevo y más intuitivo. Con Cloud Firestore también se pueden realizar consultas más ricas y rápidas, y el escalamiento se ajusta a un nivel más alto que Realtime Database.
Realtime Database es la base de datos original de Firebase. Es una solución eficiente y de baja latencia destinada a las apps para dispositivos móviles que necesitan estados sincronizados entre los clientes en tiempo real.
¿Qué base de datos recomienda Firebase?
La elección de una solución de base de datos dependerá de muchos factores, pero cuando se trata de ciertas características, podemos darte algunas recomendaciones sobre la base de datos indicada para ti.
Las dos soluciones ofrecen lo siguiente:
- SDK centrados en el cliente, sin servidores que implementar ni mantener
- Actualizaciones en tiempo real
- Nivel gratuito, luego pagas por lo que usas
Consideraciones clave
Más allá de las excelentes funciones principales comunes de ambas bases de datos, piensa en cómo algunas de las siguientes consideraciones (o todas) influirán en el éxito de tus apps.
Función de la base de datos |
Mi app usa una base de datos para…
Sincronizar datos con consultas básicas principalmente.
Si no necesitas realizar consultas, transacciones ni ordenamientos avanzados, te recomendamos Realtime Database.
Realizar búsquedas, transacciones y ordenamientos avanzados.
Si necesitas realizar interacciones complejas con tus datos, como en apps de comercio electrónico, te recomendamos Cloud Firestore.
|
Operaciones con datos |
El uso de la base de datos de mi aplicación tiene…
Algunos GB de datos o menos que cambian con frecuencia.
Si tu app envía un flujo de pequeñas actualizaciones, como en una app de pizarra digital, te recomendamos utilizar Realtime Database.
De cientos de GB a TB de datos que se leen con mucha más frecuencia de la que se cambia.
Para conjuntos de datos muy grandes y cuando se necesitan operaciones por lotes con frecuencia, recomendamos Cloud Firestore.
|
Modelo de datos |
Prefiero estructurar mis datos como…
Un árbol JSON simple.
Para datos JSON no estructurados, recomendamos Realtime Database.
Documentos organizados en colecciones.
Para los documentos y colecciones estructurados, recomendamos Cloud Firestore.
|
Disponibilidad |
Mis necesidades de disponibilidad son…
Garantía de tiempo de actividad extremadamente alta del 99.999%.
Si la disponibilidad es de suma importancia, como en apps de comercio electrónico, recomendamos Cloud Firestore.
Una garantía de tiempo de actividad de al menos un 99.95%.
Cuando se acepta una disponibilidad muy alta, pero que no llega a ser crítica, recomendamos Cloud Firestore o Realtime Database.
|
Consultas sin conexión en datos locales |
Mi app deberá realizar consultas en dispositivos con conectividad limitada o sin conexión…
Con frecuencia.
Para capacidades de consulta sofisticadas en datos locales cuando el usuario no tiene conexión, recomendamos Cloud Firestore.
Rara vez o nunca.
Si esperas que tus usuarios estén constantemente en línea, recomendamos Cloud Firestore o Realtime Database.
|
¿Qué otros aspectos importantes debo tener en cuenta?
Después de pensar en las consideraciones clave anteriores, es posible que estés listo para elegir una base de datos. Si aún estás considerando las ventajas y desventajas, en esta sección se abarcan otras 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.
Obtén más información sobre el modelo de datos de Realtime Database. |
Almacena datos como colecciones de documentos.
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 |
---|---|
Soporte sin conexión para clientes de Apple y Android. | Soporte sin conexión para clientes de Apple, Android y la Web. |
Presencia
Puede ser útil para saber si un cliente está en línea o no tiene conexión. Firebase Realtime Database puede registrar el estado de conexión del cliente y proporcionar actualizaciones cada vez que cambie el estado de conexión del cliente.
Realtime Database | Cloud Firestore |
---|---|
Se admite la presencia. | No compatible de forma nativa. Puedes aprovechar la compatibilidad de Realtime Database con la presencia si sincronizas Cloud Firestore y Realtime Database con Cloud Functions. Consulta Crea una presencia en Cloud Firestore. |
Realiza 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.
|
Consultas indexadas con ordenamiento y filtrado compuestos.
|
Escrituras y transacciones
Realtime Database | Cloud Firestore |
---|---|
Operaciones básicas de escritura y transacción.
|
Operaciones avanzadas de escritura y transacción.
|
Confiabilidad y rendimiento
Realtime Database | Cloud Firestore |
---|---|
Realtime Database es una solución regional
|
Cloud Firestore es una solución regional y multirregional con ajuste de escala automático
|
Escalabilidad
Realtime Database | Cloud Firestore |
---|---|
El escalamiento necesita fragmentación.
|
El escalamiento es automático.
|
Seguridad
Realtime Database | Cloud Firestore |
---|---|
Lenguaje de reglas en cascada que separa la autorización de la validación.
|
Reglas sin formato de cascada que combinan autorización y validación.
|
Precios
Ambas soluciones están disponibles en los planes de precios Spark y Blaze.
Realtime Database | Cloud Firestore |
---|---|
Se cobra solo por ancho de banda y almacenamiento, pero con una tarifa mayor.
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 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 la app.
Obtén más información sobre las funciones disponibles en Realtime Database y Cloud Firestore.
¿Todo listo para elegir una base de datos?
Esperamos que esta comparación te haya ayudado a elegir una solución de base de datos de Firebase. Ahora puedes aprender a agregar una base de datos a tus proyectos de Firebase.
- Para Cloud Firestore, consulta Primeros pasos con Cloud Firestore.
- En el caso de Realtime Database, lee el tema Primeros pasos que corresponda a tu plataforma: Apple, Android, C++, Unity, Web o REST.