Te sugerimos que pruebes esta solución en un ambiente controlado antes de enviarlo a producción, un saludo.
Solución:
Así que escribí una publicación de blog completa sobre esta misma pregunta, y te recomiendo que la consultes (o la documentación oficial) para obtener una respuesta más completa.
Pero si desea el resumen rápido (-ish), aquí está:
Mejores consultas y datos más estructurados – Si bien Realtime Database es solo un árbol JSON gigante, Cloud Firestore está un poco más estructurado. Todos sus datos constan de documentos (que son básicamente key-almacenes de valor) y colecciones (que son colecciones de documentos). Los documentos también señalarán con frecuencia subcolecciones, que contienen otros documentos, que a su vez pueden contener otros documentos, etc.
Estos datos estructurados le ayudan de dos formas. Primero, todas las consultas son superficiales, lo que significa que puede solicitar un documento sin obtener todos los datos que se encuentran debajo. Esto significa que puede mantener sus datos almacenados jerárquicamente de una manera que tenga más sentido para usted sin tener que preocuparse por mantener su base de datos poco profunda. En segundo lugar, tiene consultas más poderosas. Por ejemplo, ahora puede consultar en varios campos sin tener que crear esos campos “combinados” que combinan (y desnormalizan) datos de otras partes de su base de datos. En algunos casos, Cloud Firestore simplemente ejecutará esas consultas directamente y, en otros casos, creará y mantendrá índices automáticamente.
Diseñado para escalar – Cloud Firestore podrá escalar mejor que Realtime Database. Es importante tener en cuenta que sus consultas se adaptan al tamaño de su conjunto de resultados, no a su conjunto de datos. Por lo tanto, la búsqueda seguirá siendo rápida sin importar cuán grande sea su conjunto de datos.
Obtención manual de datos más sencilla – Al igual que Realtime Database, puede configurar oyentes en Cloud Firestore para transmitir cambios en tiempo real. Pero si no desea ese tipo de comportamiento y solo desea una simple llamada de “buscar mis datos”, Cloud Firestore también lo tiene, y está integrado como un caso de uso principal. (Son mucho mejores que los once
llamadas en Realtime Database-land)
Soporte para múltiples regiones – Esto básicamente significa más confiabilidad, ya que sus datos se comparten en múltiples centros de datos a la vez. Pero aún tiene una gran coherencia, lo que significa que siempre puede realizar una consulta y estar seguro de que está obteniendo la última versión de sus datos.
Modelo de precios diferente – Mientras que Realtime Database cobra principalmente según el almacenamiento o el ancho de banda de la red, Cloud Firestore cobra principalmente según el número de operaciones usted realiza. ¿Será esto mejor o peor? Depende de tu aplicación.
Para impulsar una aplicación de noticias, un juego multijugador por turnos o algo como su propia versión de Stack Overflow, Cloud Firestore probablemente se verá bastante favorable desde el punto de vista de los precios. Para algo así como una aplicación de dibujo grupal en tiempo real en la que envía múltiples actualizaciones por segundo a varias personas, probablemente sea más costoso que la base de datos en tiempo real.
Por qué es posible que aún desee utilizar Realtime Database – Se reduce a algunas razones. 1) Todo eso de “probablemente será más barato para las aplicaciones que hacen muchas actualizaciones frecuentes” que mencioné anteriormente, 2) Ha existido durante mucho tiempo y ha sido probado en batalla por miles de aplicaciones, 3) Tiene una mejor latencia y cuando necesite algo con una latencia baja y confiable para una sensación de tiempo real, la base de datos en tiempo real podría funcionar mejor.
Para la mayoría de las aplicaciones nuevas, le recomendamos que consulte Cloud Firestore. Pero si tiene una aplicación que ya está en Realtime Database, realmente no recomiendo cambiar solo por cambiar, a menos que tenga una razón convincente para hacerlo.
¡Espero que ayude!
Puede leer el artículo completo aquí: https://medium.com/@beingrahul/firebase-cloud-firestore-vs-firebase-realtime-database-931d4265d4b0
Firebase Realtime database
está estructurado como un árbol JSON mientras Cloud Firestore
almacena datos en documentos (el documento es un conjunto de key-pares de valores) y colecciones (colecciones de documentos).
Más datos de estructura
Realtime Database almacena datos en un árbol JSON, mientras que Cloud Firestore almacena datos en documentos que son muy similares a JSON.
En Cloud FireStore, los documentos pueden contener subcolecciones y objetos anidados (como ‘teléfono’ en la figura anterior), los cuales pueden incluir campos primitivos como cadenas (como ‘nombre’, ‘correo electrónico’ en la figura anterior) u objetos complejos como listas.
Mejor consulta
- En la base de datos en tiempo real, solo podemos ordenar o filtrar en una sola propiedad dentro de una sola consulta, no ordenar y filtrar en una propiedad. En Cloud FireStore, puede encadenar filtros y combinar el filtrado y la clasificación en una propiedad en una sola consulta.
- Si desea obtener datos en orden descendente, Cloud FireStore es muy útil para usted. Para la base de datos en tiempo real, no hay una función de consulta disponible.
- También puede encadenar varios métodos “dónde” para crear consultas más específicas (Y lógicas) en Cloud FireStore.
Escalabilidad
Cloud Firestore podrá escalar mejor que Realtime Database. Es importante tener en cuenta que el rendimiento de su consulta es proporcional al tamaño de su conjunto de resultados, no a su conjunto de datos. Por lo tanto, la búsqueda seguirá siendo rápida sin importar cuán grande sea su conjunto de datos.
Recuperación manual de datos
Podemos escuchar datos en tiempo real en Cloud FireStore como en Realtime Database, pero en Cloud FireStore también podemos obtener datos manualmente (si desea obtener datos solo una vez).
Seguridad
En Realtime Database, necesitamos validar los datos por separado usando la regla de validación, pero en Cloud FireStore, la validación de datos ocurre automáticamente.
Escribiendo los datos
Podemos ejecutar múltiples operaciones como un solo lote y completarlas de forma atómica, con cualquier combinación de set()
, update()
o delete()
métodos.
Precios
En Realtime Database, se cobra solo por el ancho de banda y el almacenamiento, pero a una tasa más alta. Mientras está en Cloud FireStore, se cobra principalmente por las operaciones realizadas en su base de datos (lectura, escritura, eliminación) y, a menor velocidad, el ancho de banda y el almacenamiento.
Razones para elegir Cloud Firestore en lugar de Realtime Database
Es una versión mejorada
La base de datos de Firebase fue suficiente para aplicaciones básicas. Pero no era lo suficientemente potente para manejar requisitos complejos. Es por eso que se presenta Cloud Firestore. A continuación se muestran algunos cambios importantes.
- Se mejora la estructura básica de archivos.
- Soporte sin conexión para el cliente web.
- Admite consultas más avanzadas.
- Las operaciones de escritura y transacción son atómicas.
- Mejoras de confiabilidad y rendimiento
- El escalado será automático.
- Estará más seguro.
Precios
En Cloud Firestore, las tarifas han bajado a pesar de que cobra principalmente por las operaciones realizadas en su base de datos junto con el ancho de banda y el almacenamiento. También puede establecer un límite de gasto diario. Aquí están los detalles completos sobre la facturación.
Planes futuros de Google
Cuando descubrieron las fallas con la base de datos en tiempo real, crearon otro producto en lugar de mejorar el anterior. Aunque no hay detalles confiables que revelen su clasificación actual en la base de datos en tiempo real, es el momento de comenzar a pensar que es probable que se abandone.
Si para ti ha sido de utilidad nuestro artículo, te agradeceríamos que lo compartas con más seniors y nos ayudes a extender nuestra información.