Comparación entre Realtime Database y Firestore de Firebase

Clase 15 de 32Curso de Firebase 5 para Web

Realtime database es la primera base de datos que liberó firebase con una alta eficiencia, baja latencia y capacidades para consultas en tiempo real. Firestore es la nueva base de datos diseñada y desarrollada por Google, la cual tiene una estructura más fácil de entender y diseñar y mejoras en los SDKs para la realización de consultas.

Veamos una comparación:

Estructura de datos

Realtime Database almacena los datos en JSON pero se organiza o se representa en la plataforma como un árbol. Esta forma es compleja cuando crecen las anidaciones, las jerarquías o la información.

Cuando se tiene grandes jerarquías con el manejo de subcolecciones, Firestore tiene una estructura visible en la consola más sencilla y fácil de escalar.

Soporte Offline

Realtime database da soporte de almacenamiento offline para Android y iOS. Firestore da soporte offline a móviles y también soporte para web.

Los Queries

Realtime database soporta solo filtrar y ordenar por un campo en un solo query. Además, cuando se realiza una consulta retorna todo el sub árbol del nodo.

Firestore soporta consultas compuestas y puede combinar filtros con ordenamiento. Al consultar solo trae el documento o los documentos sin traer subcolecciones o hijos, esto se pide a demanda. Por otro lado, las consultas son indexadas por defecto. Soporta también el ordenamiento descendente.

Escrituras y transacciones

Soporta escritura de forma individual en cambio Firestore soporta operaciones batch, las cuales pueden realizar operaciones de insertar, actualizar o eliminar al mismo tiempo.

Fiabilidad y rendimiento

Realtime database es una base de datos usada por varias empresas con muchas operaciones y ha estado disponible por varios años, lo cual significa que ofrece una gran fiabilidad y baja latencia. Realtime database está limitado a una sola región.

Firestore está en beta todavía lo cual deja dudas sobre su estabilidad a nivel de uso, ya que puede cambiar su SDK. Sin embargo, Firestore almacena los datos en múltiples datacenters y en distintas regiones, brindando una gran escalabilidad y confiabilidad.

Escalabilidad

Firestore escala de forma automática, por lo cual no se requiere compartir los datos a través múltiples instancias.

Reglas de seguridad

Realizar las reglas en Firestore es más simple y más robusto. Las reglas en Firestore no son en cascada, en cambio en Realtime Database sí. La validación de los datos en Firestore es automática, en Realtime Database hay que definirlos.

Precios

El cobro en Realtime Database es por tamaño de almacenamiento y ancho de banda y es más costoso que Firestore. En firestore el modelo de cobro primario es por operaciones de escritura, lectura y eliminado, el modelo secundario es por tamaño de almacenamiento y ancho de banda siendo este muy económico. También, en Firestore se cobra por los índices creados.

Firestore aunque esté en beta ofrece una gran escalabilidad, SDKs que permiten hacer consultas de una forma más sencilla y mejora las falencias de Realtime Database. Realtime Database se mantendrá por unos años pero será reemplazada por firestore, así que empieza aprender las bondades de Firestore.