Realtime vs Cloud Firestore: qué base de datos de Firebase elegir
Publicado: 2018-10-12La historia se remonta a la base de datos de Firebase no mucho más allá. Fundada como una plataforma de desarrollo web y móvil, Firebase nació en 2011 y luego, en 2014, fue adquirida por el gigante tecnológico Google y su destino cambió.
Pasando por delante de la historia de la evolución de Firebase, dentro de un año después de su adquisición por parte de Google, se fusionó con Divshot y desde entonces se ha expandido para convertirse en una plataforma unificada para desarrolladores móviles.
Firebase ahora se integra con varios otros servicios de Google para ofrecer productos más amplios y escalables para los desarrolladores. De hecho, los beneficios que ofrece hacen que Firebase para startups sea un proceso de moda.
Entonces, ¿qué es la base de datos de Firebase? Firebase es un BaaS, es decir, Backend como Servicio. Al utilizar los productos proporcionados por Firebase, no solo los desarrolladores móviles pueden crear aplicaciones de alta calidad. Google también ha lanzado varias funciones nuevas para los usuarios web de Firebase .
Hay dos productos de Firebase que hacen posible construir todas las aplicaciones que acabamos de mencionar. Tiempo real y Cloud Firestore.
Realtime es el producto bien establecido de la base de datos Firebase de Google y Cloud Firestore, aunque promete mejores tecnologías, aún se encuentra en su etapa de prueba beta.
Según Google :
La base de datos en tiempo real es la base de datos original de Firebase. Es una solución eficiente y de baja latencia para una aplicación móvil que requiere estados sincronizados entre clientes en tiempo real.
Cloud Firestore es la nueva base de datos emblemática de Firebase para el desarrollo de aplicaciones móviles . Mejora los éxitos de Realtime Database con un nuevo modelo de datos más intuitivo. Cloud Firestore también presenta consultas más ricas y rápidas y se escala mejor que Realtime Database.
Antes de pasar a las propiedades individuales de Realtime Database y Cloud Firestore, veamos cuáles son las ventajas y desventajas de usar la base de datos de Firebase para su próximo proyecto:
Ventajas de la base de datos de Firebase:
Si echamos un vistazo a la lista de razones por las que se debe usar la base de datos firebase como su base de datos integral para todo el desarrollo de aplicaciones móviles y web , veremos por qué Firebase db se ha convertido en un gran éxito en la industria del desarrollo de aplicaciones móviles.
- Fácil migración de datos: los desarrollos recientes han brindado a los desarrolladores las herramientas para migrar fácilmente los datos.
- No se requieren conocimientos adicionales: se requiere casi ningún conocimiento sobre devOps o sysadmin para operar en Firebase db.
- Validación de varios tipos de datos: aunque la estructura de la base de datos de Firebase no tiene esquemas, aún tiene la capacidad básica de validar varios tipos de datos.
- Herramienta integral: es una herramienta integral y la única que necesariamente necesita para el backend de una pequeña aplicación móvil.
- Más fácil de usar: el nivel de dificultad de uso está un poco por encima del promedio, pero es más fácil que la mayoría de los otros sistemas cuando se trata de integración con análisis y monitoreo de fallas.
- Uso gratuito: es gratis en la fase inicial, por lo que los desarrolladores que lo prueban por primera vez no tienen que preocuparse por hacer una gran inversión inicial.
- Bibliotecas de códigos enriquecidos: todas las bibliotecas de códigos en los lenguajes de programación son similares y están bien mantenidas también para los recién llegados.
- Estructura de datos JSON: la estructura de datos es JSON que se corresponde perfectamente con la interfaz de usuario de JavaScript.
- Desarrollo rápido: crear una aplicación desde cero es muy rápido: autenticación, correo electrónico, control de versiones, alojamiento, monitoreo, DevOps, tiempo de actividad.
- Transmisión fácil: el funcionamiento en tiempo real o las actualizaciones de transmisión son muy fáciles.
Comparemos ahora la base de datos The Realtime y Cloud Firestore para tener una comprensión más clara de cuándo usar cuál. Cloud Firestore aún se encuentra en su etapa de prueba beta y se ve y funciona de una manera más prometedora que la base de datos en tiempo real. En esta comparación, verá cómo las dos bases de datos difieren entre sí y quién gana la base de datos en tiempo real frente a la tienda de fuego en la nube.
Modelo de datos
- La base de datos en tiempo real almacena datos como un gran árbol JSON, lo que hace que sea muy fácil almacenar datos simples, pero los datos complejos o jerárquicos son más difíciles de organizar a escala.
- Cloud Firestore , por otro lado, almacena datos en forma de documentos que se organizan en colecciones. En esto, el almacenamiento de datos simples es similar a JSON y se almacena en documentos. Considerando que, los datos complejos o jerárquicos no son más fáciles de organizar a escala con el uso de subcolecciones dentro de los documentos. Y, en general, requiere menos desnormalización y aplanamiento de datos.
Soporte en tiempo real y fuera de línea
- La base de datos en tiempo real brinda soporte sin conexión solo para los clientes móviles de Android e iOS.
- Cloud Firestore , por otro lado, también brinda soporte sin conexión para Android, iOS y clientes web.
consultando
- La base de datos en tiempo real proporciona consultas profundas con funciones limitadas de clasificación y filtrado donde los desarrolladores pueden clasificar o filtrar una propiedad en una sola consulta. Y todas las consultas son profundas por defecto, es decir, siempre devuelven el subárbol completo.
- Consulta de índices de Cloud Firestore con clasificación y filtrado compuestos donde los desarrolladores pueden filtrar en cadena y combinar el filtrado y la clasificación en una propiedad en una sola consulta. También es posible escribir consultas superficiales para subcolecciones, es decir, los desarrolladores pueden consultar dentro de un documento en lugar de una colección completa o un documento completo. No solo esto, sino que las consultas están indexadas de forma predeterminada, lo que significa que el rendimiento de las consultas es proporcional al tamaño del conjunto de resultados y no al conjunto de datos.
Actas
- En la base de datos en tiempo real , existen operaciones básicas de escritura y transacción. La escritura de datos funciona como una operación individual y las transacciones requieren una devolución de llamada de finalización en los SDK nativos.
- Cloud Firestore permite operaciones de escritura y transacciones atómicas. Agrupa las operaciones y las completa automáticamente. Además, las transacciones se repiten automáticamente hasta que se completan.
Rendimiento y fiabilidad
- La base de datos en tiempo real es un producto maduro. Tiene la estabilidad de un producto verdadero probado y probado varias veces. También tiene una latencia muy baja, por lo que es una buena opción para la sincronización de estado frecuente. Aunque, las bases de datos están limitadas a la disponibilidad zonal en una sola región.
- El rendimiento de Cloud Firestore aún no se puede medir porque aún se encuentra en su etapa beta. Y la estabilidad en un producto beta no es la misma que la de un producto completamente lanzado. Pero en términos de confiabilidad, Cloud Firestore alberga todos sus datos en múltiples centros de datos en diferentes regiones, lo que garantiza escalabilidad global y una gran confiabilidad. En teoría, siempre que Cloud Firestore salga de la versión beta, tendrá una mayor confiabilidad que la base de datos en tiempo real.
Escalabilidad
- En la base de datos en tiempo real , el escalado requiere fragmentación. En pocas palabras, escale a aproximadamente 100 000 conexiones simultáneas y 1000 escrituras por segundo en una sola base de datos y más allá de eso, requiere fragmentar sus datos en varias bases de datos.
- Cuando Cloud Firestore salga de la versión beta, la ampliación será automática y los desarrolladores no tendrán que fragmentar sus datos en varias instancias.
Seguridad
- La base de datos en tiempo real tiene reglas en cascada que requieren validación por separado. Las reglas de la base de datos de firebase son las únicas opciones de seguridad aquí y los desarrolladores necesitan validar los datos por separado usando la regla 'validar'.
- Cloud Firestore tiene una seguridad más simple y poderosa para los SDK móviles, web y de servidor que utilizan la gestión de acceso e identidad (IAM). La validación de datos también ocurre automáticamente. Además, las reglas pueden restringir las consultas, es decir, si los resultados de una consulta pueden contener datos a los que el desarrollador no tiene acceso, la consulta completa falla.
Precios
- La base de datos en tiempo real solo cobra por el ancho de banda y el almacenamiento, pero a un precio más alto.
- Cloud Firestore , por otro lado, cobra principalmente por las operaciones realizadas en su base de datos (Lectura, escritura, eliminación) y en una tarifa menor, ancho de banda y almacenamiento. También admite límites de gastos diarios para proyectos de Google App Engine.
¿Aún te preguntas cómo funciona firebase? Rebobinemos un resumen de lo que hemos conocido en el artículo anterior.
Cuándo usar Realtime Database:
- Si sus datos son simples y no complejos o jerárquicos
- Si necesita escalar por debajo de 100 000 conexiones simultáneas 1000 escrituras/segundo en una sola base de datos
- Cuando necesite una base de datos que cobre por el ancho de banda y el almacenamiento en general y no por operaciones individuales realizadas.
Cuándo usar la base de datos de Cloud Firestore:
- Si sus datos son complejos o jerárquicos
- Si sus datos escalan más de 100 000 conexiones simultáneas
- Si necesita un límite de gasto más preciso y una base de datos que cobra principalmente en 1, PicCollage, Fabulous, Shazam y Skyscanner y todos podemos estar de acuerdo en que se están ejecutando correctamente.
En conclusión, los modelos db de Firebase funcionan bien para ellos. Firebase en tiempo real se ha estado ejecutando con éxito durante años y el año pasado, con el lanzamiento de la versión beta de Cloud Firestore, les esperan cosas mejores a los desarrolladores de aplicaciones móviles y a las empresas de desarrollo de aplicaciones.