Ir a la consola

Elige una 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 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. Cloud Firestore también cuenta con consultas más ricas y rápidas, y la escala 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 de baja latencia para las apps para dispositivos móviles que necesitan estados sincronizados entre los clientes en tiempo real.

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

Recomendamos Cloud Firestore a la mayoría de los desarrolladores quieren comenzar proyectos nuevos. Cloud Firestore ofrece más funciones, rendimiento y escalabilidad en una infraestructura diseñada para admitir funciones más potentes en las próximas actualizaciones. 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, ten 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 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, con subcolecciones dentro de los documentos.
  • Necesita menos desnormalización y compactación de datos.

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 iOS y Android Soporte sin conexión para clientes iOS, Android y 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
  • Las consultas pueden ordenar o filtrar en una propiedad, pero no ambas opciones.
  • Las consultas son profundas según la configuración predeterminada: siempre muestran el subárbol completo.
  • Las consultas pueden acceder a los datos en cualquier nivel de detalle, hasta valores de nodo 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 el conjunto de datos.
Consultas indexadas con ordenamiento y filtrado compuestos
  • Puedes encadenar filtros y combinar filtrado con ordenamiento según una propiedad en la misma consulta.
  • Las consultas son superficiales: solo muestran documentos de colecciones o grupos de colecciones específicos y no muestran datos de subcolecciones.
  • Las consultas siempre deben mostrar documentos completos.
  • 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
  • Permite escribir datos mediante 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
  • Permite escribir datos a través de operaciones de configuración y actualización, así como transformaciones avanzadas, como operadores de arreglos y numéricos.
  • Las transacciones pueden leer y escribir datos atómicamente desde cualquier parte de la base de datos.

Confiabilidad y rendimiento

Realtime Database Cloud Firestore
Realtime Database es una solución de una sola región
  • Las bases de datos se limitan a la disponibilidad zonal de una sola región.
  • Latencia extremadamente baja, es la opción ideal para sincronizar estados con frecuencia.
Obtén más información sobre las características de rendimiento y confiabilidad de Realtime Database en el Acuerdo de Nivel de Servicio.
Cloud Firestore es una solución multirregional con ajuste de escala automático
  • Aloja los datos en varios centros de datos de distintas regiones, lo que garantiza una escalabilidad global y una confiabilidad sólida.
  • Está disponible en configuraciones regionales o multirregionales en todo el mundo.
Obtén más información sobre las características de rendimiento y confiabilidad de Cloud Firestore en el Acuerdo de Nivel de Servicio.

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 un escalamiento mayor que ese, se deben fragmentar los datos en distintas bases de datos.
  • Las tasas de escritura en piezas individuales de datos no tienen límites locales.
El escalamiento es automático
  • Escala de forma completamente automática. En este momento, los límites de escalamiento son de 1 millón de conexiones simultáneas y 10,000 operaciones de escritura por segundo. Esperamos aumentar los límites en el futuro.
  • Las tasas de escritura en índices o documentos individuales tienen límites.

Seguridad

Realtime Database Cloud Firestore
Lenguaje de reglas en cascada que separa la autorización de la validación
  • Las reglas de Realtime Database protegen las operaciones de lectura y escritura desde los SDK para dispositivos móviles.
  • Transmisión en cascada de reglas de lectura y escritura.
  • Debes validar los datos por separado mediante la regla validate.
Reglas sin formato de cascada que combinan autorización y validación
  • Las reglas de seguridad de Cloud Firestore protegen las operaciones de lectura y escritura desde los SDK para dispositivos móviles.
  • Identity and Access Management (IAM) protege las operaciones de lectura y escritura desde los SDK para servidores.
  • Las reglas no se aplican en cascada, a menos que uses un comodín.
  • 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.

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.

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.