我们需要使我们的Firebase
数据与其他databases
for full-text search
(in ElasticSearch
) 和其他Firebase
不容易支持的查询保持同步。
这需要尽可能接近实时,我们不能只导出每晚的转储Firebase JSON
或类似的东西,除非这会变得相当大。
我最初的想法是运行一个Node.js
客户端来监听所有主列表的事件child_changed
,但这可能会有点笨拙,如果客户端在一段时间后重新连接,这是否是一种可靠的同步child_added
方式child_removed
时间?
我的下一个想法是维护一个“项目更改”事件列表,并在每次创建/更新项目时写入该列表,类似于Firebase 工作队列示例。队列可能包含已更改数据的完整路径,工作人员只需使用该路径并相应地更新本地数据库。
这里的问题是每一个进行更新的代码都必须记住写入这个队列,否则两个系统将不同步。一些代理代码不应该太难写。
有没有其他人做过类似的事情并取得了成功?