如何知道哪些离线数据已同步到 firebase 实时数据库

How to know which offline data has been synced to firebase Realtime Database

我正在 firebase.Here 的帮助下编写聊天应用程序我有一个问题,如果设备离线,数据存储在缓存中,当设备重新在线时,缓存将同步,但是如何知道哪些数据已同步,哪些未同步(用户可能网络连接不佳,因此同步可能会延迟)。如何通知用户消息已发送或正在发送,我们也需要管理大量消息 谢谢!

有两种方法:

  1. 使用完成侦听器,如下所示:Firebase Android - how to tell if node has been synced只要应用程序保持活动状态,这种方法就有效。完成侦听器不会在应用程序重启后继续存在,因此如果应用程序重新启动,它将无法工作。

  2. 使用标记值。从单个客户端写入数据库保证按顺序执行。使用这些知识,您可以在应用程序重新启动或连接恢复时写入一个哨兵(认为:虚拟)值,并检测何时写入该值。确认标记值后,您可以确定所有旧消息也已由服务器处理。

另见: