Firebase ofrece dos soluciones de base de datos accesibles para el cliente y basadas en la nube que admiten la sincronización de datos en tiempo real:
Cloud Firestore es la base de datos más nueva de Firebase para el desarrollo de aplicaciones móviles. Se basa en los éxitos de Realtime Database con un nuevo modelo de datos más intuitivo. Cloud Firestore también presenta consultas más ricas y rápidas y se escala más que Realtime Database.
Realtime Database es la base de datos original de Firebase. Es una solución eficiente y de baja latencia para aplicaciones móviles que requieren estados sincronizados entre clientes en tiempo real.
¿Qué base de datos recomienda Firebase?
Su elección de solución de base de datos dependerá de muchos factores, pero cuando se trata de ciertas características, podemos hacerle recomendaciones sobre qué base de datos es adecuada para usted.
Ambas soluciones ofrecen:
- SDK de cliente primero, sin servidores para implementar y mantener
- Actualizaciones en tiempo real
- Nivel gratuito, luego paga por lo que usas
Consideraciones clave
Más allá de las excelentes características principales comunes a ambas bases de datos, piense en cómo algunas o todas las consideraciones que se enumeran a continuación afectarán el éxito de sus aplicaciones.
Rol de la base de datos | Mi aplicación utiliza una base de datos para... Principalmente sincronizando datos, con consultas básicas. Si no necesita consultas, clasificación y transacciones avanzadas, le recomendamos Realtime Database . Consultas avanzadas, clasificación y transacciones. Si necesita interacciones complejas con sus datos, por ejemplo, en aplicaciones de comercio electrónico, le recomendamos Cloud Firestore . |
Operaciones sobre datos | El uso de la base de datos de mi aplicación parece... Unos pocos GB o menos de datos que cambian con frecuencia. Si su aplicación va a enviar un flujo de pequeñas actualizaciones, como en una aplicación de pizarra digital, recomendamos Realtime Database . Cientos de GB a TB de datos que se leen con mucha más frecuencia de lo que se modifican. 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 no estructurados JSON, recomendamos Realtime Database . Documentos organizados en colecciones. Para 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, por ejemplo en aplicaciones de comercio electrónico, recomendamos Cloud Firestore . Una garantía de al menos 99,95% de tiempo de actividad. Cuando se acepta una disponibilidad muy alta pero no crítica, recomendamos Cloud Firestore o Realtime Database . |
Consultas sin conexión sobre datos locales | Mi aplicación deberá realizar consultas en dispositivos con conectividad limitada o nula... Frecuentemente. Para capacidades de consulta sofisticadas en datos locales cuando el usuario está desconectado, recomendamos Cloud Firestore . Rara vez o nunca. Si espera que sus usuarios estén constantemente en línea, le recomendamos Cloud Firestore o Realtime Database . |
Número de instancias de base de datos | En mis proyectos individuales, necesito usar... Muchas bases de datos, por ejemplo, una base de datos para cada cliente principal. Dado que le permite agregar varias bases de datos a un solo proyecto de Firebase, recomendamos Realtime Database . Una única base de datos. Si necesita una sola base de datos, le recomendamos Cloud Firestore o Realtime Database . |
¿Cuáles son algunas otras cosas importantes a considerar?
Después de pensar en las consideraciones clave anteriores, es posible que esté listo para elegir una base de datos . Si todavía está sopesando los pros y los contras, esta sección cubre otras diferencias entre Cloud Firestore y Realtime Database.
Modelo de datos
Tanto Realtime Database como Cloud Firestore son bases de datos NoSQL.
Base de datos en tiempo real | Tienda de fuego en la nube |
---|---|
Almacena datos como un gran árbol JSON.
Obtenga más información sobre el modelo de datos de Realtime Database . | Almacena datos como colecciones de documentos.
Obtenga más información sobre el modelo de datos de Cloud Firestore . |
Soporte en tiempo real y fuera de línea
Ambos tienen SDK en tiempo real para dispositivos móviles y ambos admiten el almacenamiento local de datos para aplicaciones listas para usar sin conexión.
Base de datos en tiempo real | Tienda de fuego en la nube |
---|---|
Soporte fuera de línea para clientes de Apple y Android. | Soporte sin conexión para Apple, Android y clientes web. |
Presencia
Puede ser útil saber cuándo un cliente está en línea o fuera de línea. Firebase Realtime Database puede registrar el estado de conexión del cliente y proporcionar actualizaciones cada vez que cambia el estado de conexión del cliente.
Base de datos en tiempo real | Tienda de fuego en la nube |
---|---|
Presencia apoyada. | No se admite de forma nativa. Puede aprovechar la compatibilidad de Realtime Database con la presencia sincronizando Cloud Firestore y Realtime Database mediante Cloud Functions. Consulte Crear presencia en Cloud Firestore . |
consultando
Recupere, ordene y filtre datos de cualquier base de datos a través de consultas.
Base de datos en tiempo real | Tienda de fuego en la nube |
---|---|
Consultas profundas con funciones limitadas de clasificación y filtrado .
| Consultas indexadas con clasificación y filtrado compuestos.
|
Escrituras y transacciones
Base de datos en tiempo real | Tienda de fuego en la nube |
---|---|
Operaciones básicas de escritura y transacción.
| Operaciones avanzadas de escritura y transacción.
|
Fiabilidad y rendimiento
Base de datos en tiempo real | Tienda de fuego en la nube |
---|---|
Realtime Database es una solución regional.
| Cloud Firestore es una solución regional y multirregional que escala automáticamente.
|
Escalabilidad
Base de datos en tiempo real | Tienda de fuego en la nube |
---|---|
El escalado requiere fragmentación.
| El escalado es automático.
|
Seguridad
Base de datos en tiempo real | Tienda de fuego en la nube |
---|---|
Lenguaje de reglas en cascada que separa la autorización y la validación.
| Reglas no en cascada que combinan autorización y validación.
|
Precios
Ambas soluciones están disponibles en los planes de precios Spark y Blaze .
Base de datos en tiempo real | Tienda de fuego en la nube |
---|---|
Solo cobra por el ancho de banda y el almacenamiento , pero a una tarifa más alta. Obtenga más información sobre los planes de precios de Realtime Database . | Cobra principalmente por las operaciones realizadas en su base de datos (lectura, escritura, eliminación) y, en menor medida, por el ancho de banda y el almacenamiento. Cloud Firestore admite límites de gastos diarios para los proyectos de App Engine, para asegurarse de que no exceda los costos con los que se siente cómodo. Obtenga más información sobre los planes de precios de Cloud Firestore . |
Uso de Cloud Firestore y Realtime Database
Puede usar ambas bases de datos dentro de la misma aplicación o proyecto de Firebase. Ambas bases de datos NoSQL pueden almacenar los mismos tipos de datos y las bibliotecas cliente funcionan de manera similar. Tenga en cuenta las diferencias descritas anteriormente si decide utilizar ambas bases de datos en su aplicación .
Obtenga más información sobre las funciones disponibles tanto en Realtime Database como en Cloud Firestore .
¿Listo para elegir una base de datos?
Esperamos que esta comparación lo haya ayudado a decidirse por una solución de base de datos de Firebase. Ahora puede aprender a agregar una base de datos a sus proyectos de Firebase.
- Para Cloud Firestore , eche un vistazo a Primeros pasos con Cloud Firestore .
- Para Realtime Database , lea el tema Introducción para su plataforma: Apple , Android , C++ , Unity , Web o REST .