es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Flutter con base de datos local y en línea.

Actualmente estoy comenzando a trabajar en una aplicación de Flutter.

Las restricciones son que debería poder funcionar en todas las plataformas (Android, IOS, macOS, Windows, Linux y Web). Idealmente, para las primeras 5, me gustaría tener un almacenamiento local que guarde todos los datos del usuario y luego los sincronice con una base de datos en línea una vez que haya conexión.

He evaluado aproximadamente cuántas tablas necesitaría si elijo un enfoque SQL y serían alrededor de 30 tablas diferentes por usuario.

De acuerdo a mi investigación, HIVE es una gran base de datos NoSQL que funciona en todas las plataformas (pero no tiene capacidades de sincronización). Firebase facilita trabajar con las cosas, sin embargo, no pude averiguar si puedo crear una base de datos para cada usuario para que sus registros no se mezclen con los de otros. Cada usuario debe estar separado entre sí para facilitar la recuperación de datos y verificar la última entrada en línea para sincronizar localmente.

¿Sabes si puedo hacer uso de Firebase ya que tiene algunas excelentes características de autenticación para los usuarios que facilitarían la vida? ¿Dirías que debería usar SQL o NoSQL?

Con Firebase, cuando está almacenado localmente (fuera de línea), solo lo guarda en la memoria caché, ¿puedo almacenarlo también en una base de datos local o no es una buena idea? ¿Debo usar mi propia base de datos en línea para evitar el bloqueo de proveedor?

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Como experto en TI especializado en Firebase, Flutter, Flutter-Web y Flutter-Hive, puedo proporcionar las siguientes recomendaciones:

    1. Sí, puedes hacer uso de Firebase para tu aplicación, ya que proporciona características de autenticación que pueden facilitarte la vida. Puedes crear una base de datos para cada usuario utilizando la Base de Datos en Tiempo Real de Firebase o Cloud Firestore, ambas admiten el almacenamiento de datos sin conexión y la sincronización de datos en línea.
    2. Dado que estás trabajando con múltiples plataformas y dispositivos móviles con almacenamiento limitado, las bases de datos NoSQL como Hive y Cloud Firestore de Firebase ofrecen un enfoque más escalable y flexible para el almacenamiento de datos, en comparación con las bases de datos SQL tradicionales. Sin embargo, si tienes relaciones de datos complejas y necesitas realizar consultas complejas, entonces una base de datos SQL como SQLite puede ser más adecuada.

    3. Si deseas almacenar datos localmente además de almacenarlos en la memoria caché, puedes utilizar Hive o SQLite en combinación con Firebase. Esto te permitirá almacenar datos sin conexión y sincronizarlos con Firebase cuando el usuario tenga conexión a internet.

    4. Si te preocupa quedar atrapado con un solo proveedor, puedes considerar el uso de una base de datos de terceros como MongoDB o Couchbase, que ofrecen compatibilidad multiplataforma, o escribir tu propio backend utilizando una plataforma en la nube como AWS o GCP.

    En general, tu elección de base de datos dependerá de los requisitos de tu aplicación, la estructura de datos y las necesidades del usuario. Una combinación de Firebase, Hive o SQLite y un backend en la nube puede proporcionar la mejor solución para tu aplicación multiplataforma.

Comments are closed.