Google acaba de lanzar Cloud Firestore, su nueva base de datos de documentos para aplicaciones.
He estado leyendo la documentación pero no veo muchas diferencias entre Firestore y Firebase DB.
El punto principal es que Firestore usa documentos y colecciones que permiten el uso fácil de las consultas en comparación con Firebase, que es una base de datos noSQL tradicional con una base JSON.
Me gustaría saber un poco más sobre sus diferencias o usos, o si Firestore acaba de reemplazar Firebase DB.
firebase
firebase-realtime-database
google-cloud-platform
google-cloud-firestore
Francisco Durdin Garcia
fuente
fuente
Respuestas:
Así que escribí una publicación de blog completa sobre esta misma pregunta, y le recomiendo que la revise (o la documentación oficial ) para obtener una respuesta más completa.
Pero si quieres el resumen rápido (-ish), aquí está:
Mejor consulta y datos más estructurados : si bien la base de datos en tiempo real es solo un árbol JSON gigante, Cloud Firestore es un poco más estructurado. Todos sus datos consisten en documentos (que son básicamente almacenes de valores clave) y colecciones (que son colecciones de documentos). Los documentos también apuntarán con frecuencia a subcolecciones, que contienen otros documentos, que pueden contener otros documentos, etc.
Estos datos estructurados lo ayudan de dos maneras. Primero, todas las consultas son poco profundas , 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 superficial. Segundo, tienes consultas más poderosas. Por ejemplo, ahora puede consultar en múltiples 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 solo ejecutará esas consultas directamente, y en otros casos, automáticamente creará y mantendrá índices para usted.
Diseñado para escalar: Cloud Firestore podrá escalar mejor que la base de datos en tiempo real. Es importante tener en cuenta que sus consultas se ajustan 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 más fácil : al igual que la base de datos en tiempo real, puede configurar escuchas en Cloud Firestore para transmitir los cambios en tiempo real. Pero si no desea ese tipo de comportamiento, y solo desea una simple llamada "recuperar mis datos", Cloud Firestore también lo tiene, y está integrado como un caso de uso principal. (Son mucho mejores que las
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 fuerte consistencia, lo que significa que siempre puede hacer una consulta y estar seguro de que está obteniendo la última versión de sus datos.
Modelo de precios diferente : mientras que la base de datos en tiempo real cobra principalmente en función del almacenamiento o el ancho de banda de la red, Cloud Firestore cobra principalmente en función del número de operaciones que 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 así 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 donde 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 la base de datos en tiempo real : se debe a algunas razones. 1) Todo eso "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 necesita algo con baja latencia confiable para una sensación en 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 la base de datos en tiempo real, realmente no recomiendo cambiar solo por cambiar, a menos que tenga una razón convincente para hacerlo.
¡Espero que ayude!
fuente
Puede leer el artículo completo aquí: https://medium.com/@beingrahul/firebase-cloud-firestore-vs-firebase-realtime-database-931d4265d4b0
Firebase Realtime database
eso se construye como un árbol JSON peroCloud Firestore
se almacena datos en documentos (que es un conjunto de pares clave-valor) y formatos de colección (que es una colección de documentos).Más datos de estructura
La base de datos en tiempo real almacenó datos en el árbol JSON pero Cloud firestore almacenó datos en documentos que es muy similar 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' y etc. en la figura anterior) u objetos complejos como liza.
Mejor consulta
Escalabilidad
Cloud Firestore podrá escalar mejor que la base de datos en tiempo real. 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 la base de datos en tiempo real, pero en Cloud FireStore, también podemos buscar datos manualmente (si desea obtener datos solo una vez).
Seguridad
En la base de datos en tiempo real, necesitamos validar los datos por separado utilizando la regla de validación, pero en Cloud FireStore, la validación de datos se realiza automáticamente.
Escribiendo los datos
Podemos ejecutar varias operaciones como un solo lote y completarlos de forma atómica, con cualquier combinación de los
set()
,update()
odelete()
métodos.Precios
En la base de datos en tiempo real, se cobra solo por el ancho de banda y el almacenamiento, pero a una tasa más alta. Mientras se encuentre en Cloud FireStore, se cobra principalmente por las operaciones realizadas en su base de datos (lectura, escritura, eliminación) y, a menor velocidad, ancho de banda y almacenamiento.
fuente
Razones para elegir Cloud Firestore sobre 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 como para manejar requisitos complejos. Es por eso que se presenta Cloud Firestore. Aquí hay algunos cambios importantes.
Precios
En Cloud Firestore, las tarifas han bajado aunque 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 los defectos 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 sea abandonado.
fuente
Sugerir enlace de google también: Firebase Real-time Database vs FireStore
Extraído de Google Docs, un pequeño resumen aquí:
FireBase Real Time DB está basado en JSON NO SQL DB, destinado a aplicaciones móviles, regionales, y se usa típicamente para almacenar y sincronizar datos entre usuarios / dispositivos en tiempo real / latencia extremadamente baja.
FireStore es JSON 'like' NOSQL DB destinado a una alta concurrencia, global, persistencia de escalado automático fácil, diseñado para cualquier cliente (no solo aplicaciones móviles) con casos de uso típicos como seguimiento de activos, análisis en tiempo real, creación de catálogos de productos minoristas, usuario social perfil, tablas de clasificación de juegos, aplicaciones basadas en chat, etc.
fuente