如何使用Firebase onSnapshot并保持一致性

时间:2019-09-17 22:21:20

标签: reactjs firebase redux

我正在开发React / redux应用程序,我的想法是使用onSnapshot订阅我的所有Firebase集合并在每次更新时更新状态,React将在每次状态更改时更新UI。

但是,我也有redux操作,这些操作会触发多个集合(例如A和B)中的更新,它们将导致不同的onSnapshot调用。这使我的UI不一致。

在Firebase中,最佳做法是什么?

1 个答案:

答案 0 :(得分:1)

我不太确定我是否了解您的情况,但我认为您是说您可能要进行一次更新,以更改2个集合(A和B),并且您有2个onSnapshot侦听器,其中一个在集合A上另一个在集合B上,并且这些onSnapshot事件不会同时触发,从而导致您的用户界面不同步。

所以,好消息是,我们正在研究一种名为onSnapshotsInSync的新方法,我认为只有在两个侦听器同步时才触发一次。还没有准备好,但是希望很快就会到来。 WIP commit here

同时,我不确定最流行的解决方法是什么,但这将涉及某种客户端检查,以检查您的数据是否同步。也许有一种逻辑方法可以根据您拥有的数据类型进行检查,如果没有,我想您可以做的一件事就是发送每个同步更新中相同的唯一字符串(基于时间戳?) ,如果所有数据都不具有相同的匹配字符串,则不渲染代码。这似乎不是很理想,所以希望我们能尽快推出新方法。