Acabo de lanzar mi primera aplicación MVP en la tienda de aplicaciones de iOS y funciona muy bien. La aplicación es esencialmente una aplicación de chat que usa Firebase.
Como estoy usando Firebase, es muy difícil hacer consultas complejas. Y para que pueda agregar características geniales a mi aplicación. Necesito poder hacer eso.
Decidí usar NodeJs y MongoDB para ejecutar mi aplicación. Sin embargo, no quiero matar lo que tengo ahora. ¿Hay alguna forma de migrar los datos que tengo en Firebase a MongoDB y mantenerlos sincronizados en tiempo real?
Estaba considerando hacer un observeSingleEvent
para descargar todos los datos. y luego usando childadded
, childremoved
para mantener todo sincronizado en tiempo real.
¿Será esto un problema si tiene muchos usuarios activos en la aplicación?
Además, ¿hay algún servicio que ofrezca hacer eso?
Felicitaciones por la aplicación. El problema al que se enfrenta es un problema clásico de migración de base de datos. Mi recomendación habitual es el enfoque que describe: haga una copia de los datos en el nuevo sistema, luego manténgalos sincronizados mientras mueve las funciones para leer de la nueva base de datos, y finalmente apague la base de datos anterior por completo.
Para pasar a MongoDB, recomendaría Stitch , que usa Atlas para almacenar datos en la nube.
Esto tiene una serie de ventajas: - Acceso a la funcionalidad y escalabilidad completas de MongoDB - No depende del proveedor de la nube que utilice o de los servicios que utilice - Controles de acceso potentes y detallados, que usted controla
Desde Firebase, debería poder exportar datos existentes como JSON e importarlos a MongoDB con mongoimport
. Los documentos tienen algunos tutoriales de creación y aplicaciones de ejemplo para que pueda comenzar.
Veo que esta es una publicación antigua, ¡espero que su migración haya sido un éxito!
Me gustaría aprovechar la oportunidad para señalar a otros que quieren migrar de Firebase a una nueva alternativa de código abierto llamada AceBase, que está inspirada en Firebase y tiene potentes opciones de indexación y consulta. AceBase usa la misma sintaxis que Firebase, por lo que es posible mantener la mayor parte de su código existente de Firebase y debería funcionar con AceBase.
Además de eso, AceBase puede almacenar en caché sus datos en el navegador (IndexedDB) para que su aplicación se pueda usar sin conexión. Cualquier cambio realizado sin conexión se sincroniza automáticamente con el servidor al volver a conectarse.
AceBase también tiene una característica única llamada "proxies de datos en vivo" que le permite codificar contra un objeto en memoria que contiene sus datos. Todos los cambios locales en el objeto se almacenan automáticamente en la base de datos y se sincronizan con el servidor, y los cambios remotos se reflejan en su objeto local en tiempo real.
Consulte AceBase en npm: https://www.npmjs.com/package/acebase