【发布时间】:2018-07-13 04:21:54
【问题描述】:
我有一个不经常更改的 Firestore 文档,并在我的应用程序的许多不同位置用作查找表。据我了解,当我获取文档时,它总是在执行服务器查询,即使文档中的数据没有改变。本地缓存仅在服务器不可用时使用。
由于文档不经常更改,我想做这样的事情......
1) 应用启动时,获取文档并存储在本地。
2) 设置一个监听器,以便在文档更改时更新本地副本。
3) 当本地副本更新时,将此更改广播到可能正在使用该文档的任何小部件。
这是我希望 Firestore 默认工作的方式。
这是个好主意吗?关于如何实现这一点的任何建议?
【问题讨论】:
-
您读到了什么表明没有现有的本地文档缓存?文档另有建议:firebase.google.com/docs/firestore/manage-data/enable-offline
-
当服务器无法访问时,有一个本地文档缓存。但是,我想始终首先参考文档缓存,而不是每次需要数据时都发出新的服务器请求。这是因为此特定文档很少更改。大多数时候缓存仍然有效。
-
您观察到哪些行为表明在您建议的情况下未使用本地缓存?
-
运行跟踪显示了一个 HTTP 查询,我的性能监控也是如此。并且文档说当服务器无法访问时使用本地缓存。我做错了吗?
-
我不确定如何直接访问本地缓存,但如果您可以通过 REST API 访问文档,则可以使用文档的 URL 以及 network_resource 包。如果您可以以这种方式访问文档,我很乐意编写一个简单的示例。
标签: google-cloud-firestore flutter