android - 如何知道哪些离线数据已同步到 Firebase 实时数据库
问题描述
我在firebase的帮助下编写了一个聊天应用程序。这里我有一个问题,如果设备离线,数据存储在缓存中,当设备重新在线时,缓存将被同步,但是如何知道哪些数据被同步而哪个不是(用户的互联网连接可能很差,所以同步可能会延迟)。如何通知用户消息已发送或正在发送,我们也需要管理大量消息谢谢!
解决方案
有两种方法:
使用如下所示的完成侦听器:Firebase Android - 如何判断节点是否已同步只要应用程序保持活动状态,这种方法就有效。完成侦听器不会在应用重启后继续存在,因此如果应用重启,它将无法工作。
使用哨兵值。保证从单个客户端对数据库的写入按顺序执行。使用这些知识,您可以在应用程序重新启动或连接恢复时编写一个哨兵(想想:虚拟)值,并检测何时写入。一旦哨兵值得到确认,您就可以确定所有较旧的消息也已由服务器处理。
另见:
推荐阅读
- react-navigation - 从名称中获取到 Screen 的路径,以与 useLinkProps 一起使用
- python - Python:清除输出
- node.js - Intellij Ultimate - 引擎“节点”与此模块不兼容。预期版本 ">= 14.15.4"。得到“12.18.3”
- python - Python,Pycharm - os.environ 中缺少环境变量
- javascript - 从选择框中插入不存在的数据
- python-3.8 - 按数字计算数字在列表编号中重复的次数
- facebook - 是否允许在开发模式下使用从 Instagram 基本显示 API 应用程序检索到的数据用于生产目的?
- javascript - innerHTML 删除图像标签的右斜线
- machine-learning - 机器学习:如何指导模型识别不存在的数据集?
- r - 如何使用 R 提取唯一 ID 以及整个数据框?