今天在使用 Firebase 进行更多编程时,我发现自己希望有几个功能:
1)合并集:
假设我有一个ref
具有价值的火力基地{a:1,b:2,c:3}
。
如果我做类似ref.set({a:-1,b:-2})
新价值的事情(不出所料)是{a:-1,b:-2}
.
相反,想象一下ref.mergeSet({a:-1,b:-2})
哪个会导致 ref 的值为 {a:-1,b:-2,c:3}
。
现在,我意识到我可以做一些类似ref.child("a").set(-1)
的事情ref.child("b").set(-2)
来实现这个结果,但至少在某些情况下,我宁愿只对我的.on()
处理程序进行一次调用。
这涉及到我的第二个想法。
2)批量集:
在我的应用程序中,我想要一种强制任意数量的调用.set
只导致.on
其他客户端调用的方法。就像是:
ref.startBatch()
ref.child("a").set(1)
ref.child("b").set(2)
....
ref.endBatch()
在批处理模式下,.set
不会导致调用.on
,相反,调用的最少次数.on
将全部来自调用.endBatch
。
我欣然承认这些想法还很新生,如果它们与 Firebase 的现有架构特性发生冲突,我不会感到惊讶,但我想我还是会分享它们。我发现在使用 Firebase 时,我不得不花费更多时间来确保客户端之间的一致性,这超出了我的预期。
再次感谢,并继续出色的工作。