¿Buscas nuestro logo?
Aquí te dejamos una copia, pero si necesitas más opciones o quieres conocer más, visita nuestra área de marca.
Conoce nuestra marca.¿Buscas nuestro logo?
Aquí te dejamos una copia, pero si necesitas más opciones o quieres conocer más, visita nuestra área de marca.
Conoce nuestra marca.dev
Jorge Herrera 18/05/2022 Cargando comentarios…
Hace unos días comenzamos una serie de posts sobre Firebase, y hablamos sobre el almacenamiento de datos en la nube con Firebase y sobre qué es Cloud Storage. En el segundo post de esta colección, vimos cómo Firebase pone a nuestra disposición dos bases de datos: Cloud Firestore y Realtime Database.
En este nuevo post, lo que vamos a hacer es analizarlas y compararlas para saber qué nos ofrece cada una de ellas, de forma que según las necesidades de nuestra app elijamos la que mejor se adapte.
Comenzaremos diciendo que tenemos 2 tipos de base de datos en Firebase:
Ambas ofrecen SDK centrados en el cliente, sin servidores que implementar ni mantener y actualizaciones en tiempo real.
En cuanto al precio, como todo con Firebase, tienen un paquete gratuito con ciertos límites en cuanto al tamaño de la base de datos y número de interacciones por día. Y como con todas las herramientas de Firebase, si necesitas aumentar esas cuotas, ofrecen más paquetes con diferentes precios.
Como decía antes, en función de las necesidades de nuestro proyecto, elegiremos una base de datos u otra. Realizarte estas preguntas te ayudará a saber cuál es la que mejor se adapta a tu app:
Cloud Firestore ofrece la posibilidad de poder trabajar con una estructura de datos compleja, realizar consultas específicas para obtener un conjunto de datos, filtrar, etc. Mientras, Realtime Database ofrece un árbol JSON, donde podrás almacenar un conjunto de datos sencillos sobre los que podrás realizar operaciones sencillas de lectura y consulta.
Además, en Cloud Firestore los datos están más estructurados ya que todos sus datos consisten en documentos y colecciones (que son colecciones de documentos). Los documentos también pueden apuntar a subcolecciones, que pueden contener otros documentos, que a su vez pueden contener otros documentos, y así sucesivamente.
Tener los datos más estructurados, facilita que las consultas puedan ser más complejas y eficientes ya que puedes solicitar un documento sin tener que obtener todos los datos que se encuentran debajo.
Sin embargo, en Realtime Database siempre obtendrás el árbol completo, por lo que filtrar y obtener sólo unos campos específicos será más difícil.
En cuanto a la escalabilidad, Cloud Firestore ofrece una mayor escalabilidad. Sus consultas se escalarán 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 cómo de grande pueda llegar a ser tu conjunto de datos.
Por otro lado, Cloud Firestore nos ofrece compatibilidad con varias regiones, es decir, sus datos se comparten en varios centros de datos a la vez. Y a la vez ofrece una gran consistencia, lo que significa que siempre puedes hacer una consulta y estar obteniendo la última versión de tus datos.
Realtime Database, por su lado, no ofrece compatibilidad con varias regiones, pero ofrece una latencia más baja, por lo que será la mejor opción si necesitamos actualizar estado de datos con frecuencia.
Por último, añadir que ambas ofrecen mecanismos de escucha si necesitas estar atento a cambios en los datos en tiempo real.
Todo esto, podemos agruparlo y mostrarlo resumido en esta tabla:
Cloud Firestore | Realtime Database | |
---|---|---|
Función de la BBDD | Consultas avanzadas | Consultas básicas |
Modelo de datos | Datos estructurados | Árbol JSON simple |
Eficiencia de las consultas | Elevada | Baja |
Escalabilidad | Alta | Baja |
Actualización en tiempo real | Disponible | Disponible |
Con Cloud Firestore podemos poseer una base de datos en la que podemos almacenar una estructura de datos compleja, realizar consultas potentes, anidar consultas, filtrar, ordenar los resultados, etc.
Por lo tanto, será recomendable usar Cloud Firestore si necesitamos una base de datos clásica.
Por otro lado, Realtime Database será recomendable si no tenemos una estructura de datos complejas ni necesidades de realizar consultas muy potentes.
Por ejemplo, Realtime Database se adaptará muy bien si tus necesidades son disponer de varios ficheros de configuración, en función de los cuales cambiarán diferentes ajustes de tu app.
Espero que este post te haya ayudado a elegir cuál es la base de datos que mejor se adapta a tu proyecto. En el anterior post vimos en detalle cómo trabajar con cada una de ellas, por lo que si no lo visitaste, te recomendamos que profundices en él.
Y si ya lo hiciste y lo que deseas es seguir conociendo las herramientas que nos ofrece Firebase para el almacenamiento de datos en la nube, no te pierdas en unos días el siguiente post donde finalizamos con la última herramienta que nos proporciona Firebase para ello: Remote Config.
¿Te has quedado con alguna duda? ¡Déjanos un comentario!
Los comentarios serán moderados. Serán visibles si aportan un argumento constructivo. Si no estás de acuerdo con algún punto, por favor, muestra tus opiniones de manera educada.
Cuéntanos qué te parece.