首页 > 解决方案 > 如何知道哪些离线数据已同步到 Firebase 实时数据库

问题描述

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

标签: androidfirebasefirebase-realtime-databasechat

解决方案


有两种方法:

  1. 使用如下所示的完成侦听器:Firebase Android - 如何判断节点是否已同步只要应用程序保持活动状态,这种方法就有效。完成侦听器不会在应用重启后继续存在,因此如果应用重启,它将无法工作。

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

另见:


推荐阅读