如何使Firebase与其他数据库保持同步

rli*_*sey 14 database firebase

我们需要保持我们的Firebase数据与其他同步databasesfull-text search(在ElasticSearch)和其他种类的查询Firebase并不轻松支持.

这需要尽可能接近实时,我们不能只是导出夜间转储Firebase JSON或类似的东西,除了这将变得相当大.

我最初的想法是运行一个Node.js客户端,它会监听child_changed,child_added,child_removed等...所有的主清单的事件,但是这可能会有点unweildy,这将是同步的可靠方法,如果一段时间后,客户端重新连接时间?

我的下一个想法是维护一个"项目已更改"事件的列表,并在每次创建/更新项目时写入,类似于Firebase工作队列示例.队列可以包含已更改的数据的完整路径,工作人员只需消耗该数据并相应地更新本地数据库.

这里的问题是每一段代码都使得更新必须记住写入此队列,否则两个系统将失去同步.一些代理代码不应该太难写.

有没有其他人做过类似的任何成功?

Kat*_*ato 5

对于搜索查询,您可以直接与ElasticSearch集成; 无需与辅助数据库同步.Firebase有一篇关于集成博客文章和一个lib,Flashlight,以使这快速,轻松.