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

Elija una base de datos: Cloud Firestore o Realtime Database

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

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 .
Raramente 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.
  • Los datos simples son muy fáciles de almacenar.
  • Los datos complejos y jerárquicos son más difíciles de organizar a escala.

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

Almacena datos como colecciones de documentos.
  • 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, utilizando subcolecciones dentro de los documentos.
  • Requiere menos desnormalización y aplanamiento de datos.

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 .
  • Las consultas pueden ordenar o filtrar una propiedad, pero no ambas.
  • Las consultas son profundas por defecto: siempre devuelven el subárbol completo.
  • Las consultas pueden acceder a los datos con cualquier granularidad, hasta valores de nodos hoja individuales en el árbol JSON.
  • Las consultas no requieren un índice; sin embargo, el rendimiento de ciertas consultas se degrada a medida que crece su conjunto de datos.
Consultas indexadas con clasificación y filtrado compuestos.
  • Puede encadenar filtros y combinar filtrado y clasificación en una propiedad en una sola consulta.
  • Las consultas son superficiales: solo devuelven documentos en una colección o grupo de colección en particular y no devuelven datos de subcolección.
  • Las consultas siempre deben devolver documentos completos.
  • Las consultas se indexan de forma predeterminada: el rendimiento de las consultas es proporcional al tamaño de su conjunto de resultados, no a su conjunto de datos.

Escrituras y transacciones

Base de datos en tiempo real Tienda de fuego en la nube
Operaciones básicas de escritura y transacción.
  • Escribir datos a través de operaciones de configuración y actualización.
  • Las transacciones son atómicas en un subárbol de datos específico.
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.
  • Disponible en configuraciones regionales. Las bases de datos están limitadas a la disponibilidad zonal dentro de una región.
  • Latencia extremadamente baja, opción ideal para sincronización de estado frecuente.
Obtenga más información sobre el rendimiento y las características de confiabilidad de Realtime Database en el Acuerdo de nivel de servicio .
Cloud Firestore es una solución regional y multirregional que escala automáticamente.
  • Aloja sus datos en múltiples centros de datos en distintas regiones, lo que garantiza la escalabilidad global y una sólida confiabilidad.
  • Disponible en configuraciones regionales o multirregionales en todo el mundo.
Obtenga más información sobre las características de rendimiento y confiabilidad de Cloud Firestore en el Acuerdo de nivel de servicio .

Escalabilidad

Base de datos en tiempo real Tienda de fuego en la nube
El escalado requiere fragmentación.
  • Escale a alrededor de 200 000 conexiones simultáneas y 1000 escrituras por segundo en una sola base de datos. Escalar más allá requiere fragmentar sus datos en múltiples bases de datos.
  • No hay límites locales en las tasas de escritura para piezas de datos individuales.
El escalado es automático.
  • Escalas completamente automáticas. Actualmente, los límites de escala son de alrededor de 1 millón de conexiones simultáneas y 10 000 escrituras por segundo. Planeamos aumentar estos límites en el futuro.
  • Tiene límites en las tasas de escritura para documentos o índices individuales.

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.
  • Lee y escribe desde SDK móviles protegidos por las reglas de seguridad de Cloud Firestore .
  • Lee y escribe desde los SDK del servidor protegidos por Identity and Access Management (IAM) .
  • Las reglas no se aplican en cascada a menos que use un comodín.
  • Las reglas pueden restringir las consultas: si los resultados de una consulta pueden 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 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.