You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

设备离线时Service修改Firestore数据,Activity的addSnapshotListener能否接收变更?

问题解答

你的场景下,Activity的addSnapshotListener完全可以接收到离线状态下Firestore的数据变更,具体原因如下:

  • Firestore在Android端默认开启了离线持久化功能,当设备离线时,Service向Firestore写入的数据会先被保存到本地缓存中,而非直接发送到云端。
  • addSnapshotListener的设计本身就会监听本地缓存+云端数据的双重变化,不管设备处于在线还是离线状态。只要本地缓存有数据更新(比如Service离线写入的内容),监听器会立即触发回调,把最新的数据推送给Activity展示。
  • 等设备恢复在线后,Firestore会自动把本地缓存里的待同步数据上传到云端,这个过程不需要你额外编写代码。如果云端有其他设备的变更,监听器也会同步拉取并更新给Activity,全程保持数据一致。

所以你之前设计的本地广播确实是冗余的,可以直接移除,只用Firestore的addSnapshotListener就能统一处理在线、离线两种状态下的数据展示逻辑,既简化代码,又能保证数据的一致性。

内容的提问来源于stack exchange,提问作者Jeffrey Chen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 07:52:34