从Firebase迁移到NodeJS MongoDB

时间:2017-01-31 04:46:21

标签: node.js mongodb firebase firebase-realtime-database

我刚刚在iOS应用程序商店发布了我的第一个MVP应用程序,它做得非常好。该应用程序本质上是一个使用Firebase的聊天应用程序。

由于我使用的是Firebase,因此很难进行复杂的查询。并且为了让我为我的应用添加很酷的功能。我需要能够做到这一点。

我决定使用NodeJs和MongoDB来运行我的应用程序。但是,我不想杀死我现在所做的事情。有没有办法将Firebase中的数据迁移到MongoDB并实时保持同步?

我正在考虑使用observeSingleEvent来下载所有数据。然后使用childaddedchildremoved将所有内容实时保持同步。

如果您在应用上有很多活跃用户,这会成为一个问题吗?

此外,是否有提供此服务的服务?

2 个答案:

答案 0 :(得分:2)

我看到这是一个旧帖子,希望您的迁移成功!

我想借此机会向希望从 Firebase 迁移到名为 AceBase 的新开源替代方案的其他人指出,该替代方案受 Firebase 的启发并具有强大的索引和查询选项。 AceBase 使用与 Firebase 相同的语法,因此实际上可以保留大部分现有的 Firebase 代码,并且它应该可以与 AceBase 一起使用。

最重要的是,AceBase 能够将您的数据缓存在浏览器 (IndexedDB) 中,以便您的应用可以离线使用。离线时所做的任何更改都会在重新连接时自动与服务器同步。

AceBase 还具有称为“实时数据代理”的独特功能,可让您针对包含数据的内存对象进行编码。对象的所有本地更改都会自动存储在数据库中并与服务器同步,远程更改会实时反映在您的本地对象中。

在 npm 上查看 AceBase:https://www.npmjs.com/package/acebase

答案 1 :(得分:1)

恭喜您!您面临的问题是经典的数据库迁移问题。我通常的建议是您概述的方法:将数据复制到新系统中,然后在移至要从新数据库读取功能的地方保持同步,最后完全关闭旧数据库。

要迁移到MongoDB,我建议使用StitchAtlas存储在云中的数据。

这具有许多优点: -访问完整的MongoDB功能和可伸缩性 -没有锁定您使用哪个云提供商或您使用的服务的锁定 -由您控制的强大,细粒度的访问控制

从Firebase,您应该能够将export existing data作为JSON,并将它们通过mongoimport导入MongoDB。 docs包含一些创建教程和示例应用程序,可以帮助您入门。