gpt4 book ai didi

ios - FIRDataEventTypeChildChanged 不能离线使用?

转载 作者:行者123 更新时间:2023-11-28 19:29:42 26 4
gpt4 key购买 nike

在我的 iOS 应用程序中,我使用 firebase observeEventType:FIRDataEventTypeChildChanged 获取特定节点的实时更新。但是,当用户离线时,节点会多次更新。但是当用户在线时,用户无法获得以前的更新。有解决办法吗?

最佳答案

Firebase 实时数据库同步状态。它确实(明确地)不同步所有中间状态更改。

如果在您的客户端离线时对同一个节点进行了多项更改,它实际上只会看到最终状态。

Client1              Database               Client2
Start listener
write 1 --> 1 --> 1
write 2 --> 2 --> 2
Go offline
write 3 --> 3
write 4 --> 4
Go online
--> 4
write 5 --> 5 --> 5

因此在上图中,客户端 2 只会看到值 1、2 和 5。它也可能看到值 4,具体取决于写入值 5 的时间。但它肯定不会看到值 3。

如果您希望在客户端 2 重新连接时将每个状态更改都传达给它,您应该将确切的状态更改存储在您的数据库中。因此,您可以存储操作,而不是存储结果值。像这样的东西:

Changes: {
"-PushId1": { value: 1 },
"-PushId2": { value: 2 },
"-PushId3": { value: 3 },
"-PushId4": { value: 4 },
"-PushId5": { value: 5 }
}

现在,如果您的客户端收听 /Changes,则可以保证看到发生的所有更改。

关于ios - FIRDataEventTypeChildChanged 不能离线使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46827601/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com