android - 使用实时更新更新缓存数据
问题描述
我目前正在开发一个 android 应用程序,并且我使用 firestore 作为我的存储方法。我的应用程序中有一个功能,在用户选择一个城市后,它会下载它的所有商店。鉴于这些商店不经常更改,我使用一个标志来了解某个城市的商店之前是否已下载,以便我可以使用缓存数据而不是服务器数据。我的问题是,如果商店信息发生变化,添加商店或删除商店,用户获得更新数据的唯一方法是再次“强制下载”城市。
我想为一个城市添加一个实时监听器,而不是强制下载。这里的问题是我不知道,例如,如果我将所有存储都放在缓存中,并且存储“ABCD”突然更改并触发我的快照侦听器,它是否也会更新我的缓存数据?如果没有,有没有办法做到这一点?
谢谢!
解决方案
如果您没有为可能更改的感兴趣文档启用侦听器,则本地缓存中不会发生任何变化。您只需让该侦听器处于活动状态,以便在文档发生更改时对其进行更改,而这将花费文档读取。
考虑在您的后端使用 Firebase 云消息传递来告诉您的应用数据何时发生更改,并且它可以根据需要查询该数据。这将是一项相当大的工作量。
推荐阅读
- python - 绘制 numpy.bytes_ 数据
- javascript - 从输入字段更改变量
- asp.net-core-mvc - HttpContext.Session.Abandon() 在 MVC 核心中不起作用。Session.clear 不会注销我的用户
- javascript - 如何连接两个变量以记录另一个变量
- jquery - 资源(一些 css 和 js 文件)未在 Safari 浏览器(iphone 设备)中加载
- android - 从托管在 android Webview 中的网站获取用户登录详细信息
- java - 驱动程序无法通过使用安全套接字层在 java 1.8.0_161 上工作但不能在 1.8.0_202 上建立与 SQL Server 的安全连接
- windows - StringCbPrintf (strsafe.h) 是 WinAPI 的一部分吗?
- php - 从PHP到PostgreSQL查询很慢,怎么增加?
- sql-server - 如何删除具有所有 NULL 值的行