我刚刚在iOS应用程序商店发布了我的第一个MVP应用程序,它做得非常好。该应用程序本质上是一个使用Firebase的聊天应用程序。
由于我使用的是Firebase,因此很难进行复杂的查询。并且为了让我为我的应用添加很酷的功能。我需要能够做到这一点。
我决定使用NodeJs和MongoDB来运行我的应用程序。但是,我不想杀死我现在所做的事情。有没有办法将Firebase中的数据迁移到MongoDB并实时保持同步?
我正在考虑使用observeSingleEvent
来下载所有数据。然后使用childadded
,childremoved
将所有内容实时保持同步。
如果您在应用上有很多活跃用户,这会成为一个问题吗?
此外,是否有提供此服务的服务?
答案 0 :(得分:2)
我看到这是一个旧帖子,希望您的迁移成功!
我想借此机会向希望从 Firebase 迁移到名为 AceBase 的新开源替代方案的其他人指出,该替代方案受 Firebase 的启发并具有强大的索引和查询选项。 AceBase 使用与 Firebase 相同的语法,因此实际上可以保留大部分现有的 Firebase 代码,并且它应该可以与 AceBase 一起使用。
最重要的是,AceBase 能够将您的数据缓存在浏览器 (IndexedDB) 中,以便您的应用可以离线使用。离线时所做的任何更改都会在重新连接时自动与服务器同步。
AceBase 还具有称为“实时数据代理”的独特功能,可让您针对包含数据的内存对象进行编码。对象的所有本地更改都会自动存储在数据库中并与服务器同步,远程更改会实时反映在您的本地对象中。
在 npm 上查看 AceBase:https://www.npmjs.com/package/acebase
答案 1 :(得分:1)
恭喜您!您面临的问题是经典的数据库迁移问题。我通常的建议是您概述的方法:将数据复制到新系统中,然后在移至要从新数据库读取功能的地方保持同步,最后完全关闭旧数据库。
要迁移到MongoDB,我建议使用Stitch将Atlas存储在云中的数据。
这具有许多优点: -访问完整的MongoDB功能和可伸缩性 -没有锁定您使用哪个云提供商或您使用的服务的锁定 -由您控制的强大,细粒度的访问控制
从Firebase,您应该能够将export existing data作为JSON,并将它们通过mongoimport
导入MongoDB。 docs包含一些创建教程和示例应用程序,可以帮助您入门。