Elija una base de datos: Cloud Firestore o Realtime Database

Firebase ofrece dos bases de datos de documentos accesibles para el cliente y basadas en la nube. Recomendamos a los nuevos clientes que comiencen con Cloud Firestore:

  • Cloud Firestore es la base de datos de documentos compatible con JSON de nivel empresarial recomendada , en la que confían más de 250 000 desarrolladores. Es adecuado para aplicaciones con modelos de datos enriquecidos que requieren consultabilidad, escalabilidad y alta disponibilidad. También ofrece sincronización de clientes de baja latencia y acceso a datos sin conexión.

  • Realtime Database es la base de datos clásica de Firebase JSON. Es adecuado para aplicaciones con modelos de datos simples que requieren búsquedas simples y sincronización de baja latencia con escalabilidad limitada.

¿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ás sopesando las ventajas y desventajas, 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.

Preferiblemente Cloud Firestore Base de datos en tiempo real
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 mediante 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 .

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 .

Soporte en tiempo real y fuera de línea

Ambos tienen SDK en tiempo real para dispositivos móviles y ambos admiten almacenamiento de datos local para aplicaciones listas para usar sin conexión.

Preferiblemente Cloud Firestore Base de datos en tiempo real
Soporte sin conexión para Apple, Android y clientes web. Soporte sin conexión para clientes Apple y Android.

Presencia

Puede resultar útil saber cuándo un cliente está en línea o fuera de línea. Firebase Realtime Database puede registrar el estado de la conexión del cliente y proporcionar actualizaciones cada vez que cambia el estado de la conexión del cliente.

Preferiblemente Cloud Firestore Base de datos en tiempo real
No es compatible de forma nativa. Puede aprovechar el soporte de presencia de Realtime Database sincronizando Cloud Firestore y Realtime Database mediante Cloud Functions. Consulte Crear presencia en Cloud Firestore . Presencia apoyada.

Consultando

Recupere, ordene y filtre datos de cualquier base de datos mediante consultas.

Preferiblemente Cloud Firestore Base de datos en tiempo real
Consultas indexadas con clasificación y filtrado compuestos.
  • Puede encadenar filtros y combinar el filtrado y la clasificación de una propiedad en una sola consulta.
  • Las consultas son superficiales: solo devuelven documentos de una colección o grupo de colecciones en particular y no devuelven datos de subcolección.
  • Las consultas siempre deben devolver documentos completos.
  • Las consultas están indexadas de forma predeterminada: el rendimiento de las consultas es proporcional al tamaño de su conjunto de resultados, no a su conjunto de datos.
Consultas profundas con funciones limitadas de clasificación y filtrado .
  • Las consultas pueden ordenar o filtrar según una propiedad, pero no ambas cosas.
  • Las consultas son profundas de forma predeterminada: siempre devuelven el subárbol completo.
  • Las consultas pueden acceder a datos con cualquier granularidad, hasta valores de nodos de 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.

Escrituras y transacciones

Preferiblemente Cloud Firestore Base de datos en tiempo real
Operaciones avanzadas de escritura y transacción.
  • Escriba operaciones de datos a través de operaciones de configuración y actualización, así como transformaciones avanzadas como operadores numéricos y de matriz.
  • Las transacciones pueden leer y escribir datos de forma atómica desde cualquier parte de la base de datos.
Operaciones básicas de escritura y transacción.

Fiabilidad y rendimiento

Preferiblemente Cloud Firestore Base de datos en tiempo real
Cloud Firestore es una solución regional y multirregional que escala automáticamente.
  • Una solución de baja latencia, con tiempos de respuesta típicos no superiores a 30 ms.
  • Aloja sus datos en múltiples centros de datos en distintas regiones, lo que garantiza escalabilidad global y una sólida confiabilidad.
  • Disponible en configuraciones regionales o multirregionales en todo el mundo.
Lea más sobre las características de confiabilidad y rendimiento de Cloud Firestore en el Acuerdo de nivel de servicio .
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, con tiempos de respuesta típicos no superiores a 10 ms. Una opción ideal para la sincronización frecuente de estados.
Lea más sobre las características de confiabilidad y rendimiento de Realtime Database en el Acuerdo de nivel de servicio .

tiempo de actividad

Preferiblemente Cloud Firestore Base de datos en tiempo real
Rendimiento de tiempo de actividad extremadamente alto.
  • Rendimiento de tiempo de actividad típico del 99,999 %.
  • Si la disponibilidad es de suma importancia, por ejemplo en aplicaciones de comercio electrónico, utilice Cloud Firestore.
Alto rendimiento de tiempo de actividad.
  • Rendimiento de tiempo de actividad típico del 99,95 %.

Escalabilidad

Preferiblemente Cloud Firestore Base de datos en tiempo real
El escalado es automático.
  • Escala de forma completamente automática. 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 velocidades de escritura de documentos o índices individuales.
El escalado requiere fragmentación.
  • Escale hasta alrededor de 200 000 conexiones simultáneas y 1000 escrituras por segundo en una única base de datos. Escalar más allá de eso requiere fragmentar sus datos en múltiples bases de datos.
  • No hay límites locales en las velocidades de escritura de datos individuales.

Seguridad

Preferiblemente Cloud Firestore Base de datos en tiempo real
Reglas sin 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 SDK de servidor protegidos por Identity and Access Management (IAM) .
  • Las reglas no se aplican en cascada a menos que utilice 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, toda la consulta falla.
Lenguaje de reglas en cascada que separa autorización y validación.

Precios

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

Preferiblemente Cloud Firestore Base de datos en tiempo real
Cobra principalmente por las operaciones realizadas en su base de datos (lectura, escritura, eliminación) y, a una tarifa más baja, por el ancho de banda y el almacenamiento.

Cloud Firestore admite límites de gasto diario para proyectos de App Engine, para garantizar que no excedas los costos con los que te sientes cómodo.

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

Cobra sólo por ancho de banda y almacenamiento , pero a una tarifa más alta.

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

Uso de Cloud Firestore y base de datos en tiempo real

Puedes 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 le haya ayudado a decidirse por una solución de base de datos Firebase. Ahora puedes aprender cómo agregar una base de datos a tus proyectos de Firebase.