我刚开始使用Firebase,并对以下网址中列出的Firebase事件保证提出了疑问: Event Guarantees
其中一项保证规定,从单个客户端写入的内容将始终写入服务器并按顺序向其他用户广播。
此保证是否也意味着客户将按照广播的顺序接收单个客户广播的事件,或者是否可以接收广播订单之外的事件?
例如,如果一个客户端添加了一个节点,然后将一个子节点添加到该节点,我保证其他客户端会以相同的顺序看到这些事件吗?
答案 0 :(得分:3)
唯一的保证是这些值最终会保持一致。想一想,这是唯一合理的答案。互联网上的任何操作都可能被过程中的任何移动部件无限延迟,从而产生客户收到的无序事件,无论他们到达服务器的顺序如何。
因此,您可以保证所有客户端最终都会看到两个添加的子节点,并且它们将在所有客户端中保持一致(最终)。
如果您想保证事件的顺序,那么您正在使用消息队列 - 这可以改变您使用Firebase的方式,但不是唯一的方法。这可以使用push() method轻松实现,orderByChild创建按时间顺序排列的唯一ID。
您还可以输入时间戳并使用{{3}}方法对记录进行排序。