假设我有一个运行 firebase firestore 数据库的网络/移动应用程序。
我的应用程序设置为主要服务动态内容完全存储在 firestore 中。
所以我们讨论的是缓存动态内容
例如,如果用户加载页面 A,它将向 firestore 发出 1 个请求。如果该用户转到页面 B,然后 5 分钟后返回页面 A,如果内容没有更改,我不希望应用程序发出另一个请求。
我听说过http cache-control
标题,但我担心的是。如果缓存控件去检查 firestore 来了解内容是否仍然相同,那么这个操作会被视为 firestore 的请求吗?
Firestore 不会以 HTTP 缓存控制标头应用的方式发出请求。
但是,那protocol包括恢复令牌的概念,它允许稍后恢复整个查询,可能避免重新传输与查询匹配的任何未更改的文档。
If you 启用持久性在您的 Web 应用程序中,Firestore 将为您在本地 IndexedDB 中缓存文档和恢复令牌。如果您稍后返回某个页面,它将透明地使用恢复令牌并避免重新传输。
Note a 定价警告:
如果侦听器断开连接超过 30 分钟(例如,如果用户离线),您将需要支付读取费用,就像您发出了全新的查询一样。
所以,专门解决你的问题。如果:
- 你启用了持久性,
- 底层数据没有改变,
- 用户加载页面 A,并且
- 5分钟后再次加载页面A
然后 Firestore 将请求该页面的数据,但服务器实际上会响应没有任何更改:不会传输任何文档,并且不会收取任何费用来确认这一点。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)