假设我有一个运行 firebase firestore 数据库的网络/移动应用程序。
我的应用程序设置为主要服务 动态内容完全存放在firestore中。
所以我们在谈论缓存动态内容
如果用户加载页面 A,它将向 firestore 发出 1 个请求(例如)。如果此用户转到页面 B,然后在 5 分钟后返回页面 A,如果内容没有更改,我不希望应用程序再次发出请求。
我听说过 http cache-control
标题,但我担心的是。如果缓存控件去检查 firestore 以了解内容是否仍然相同,此操作是否会被视为 firestore 的请求?
最佳答案
Firestore 不会以适用 HTTP Cache-Control header 的方式发出请求。
然而,protocol包括恢复 token 的概念,它允许在以后恢复整个查询,可能避免重新传输与查询匹配的任何未更改的文档。
如果您 enable persistence在您的 Web 应用程序中,Firestore 将为您缓存文档并在本地 IndexedDB 中恢复 token 。如果您稍后返回某个页面,它将透明地使用恢复 token 并避免重新传输。
注意 pricing caveat :
If the listener is disconnected for more than 30 minutes (for example, if the user goes offline), you will be charged for reads as if you had issued a brand-new query.
所以,专门解决你的问题。如果:
然后 Firestore 将请求该页面的数据,但服务器基本上会做出响应:没有任何更改:不会传输任何文档,并且不会收取任何费用来确认。
关于firebase - 如何使用 Http 缓存控制保存 Firestore 请求?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46579285/