firebase - 如何使用 Http 缓存控制保存 Firestore 请求?

标签 firebase caching http-caching google-cloud-firestore

假设我有一个运行 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.



所以,专门解决你的问题。如果:
  • 您已启用持久性,
  • 底层数据没有变化,
  • 用户加载页面 A,然后
  • 5 分钟后再次加载页面 A

  • 然后 Firestore 将请求该页面的数据,但服务器基本上会做出响应:没有任何更改:不会传输任何文档,并且不会收取任何费用来确认。

    关于firebase - 如何使用 Http 缓存控制保存 Firestore 请求?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46579285/

    相关文章:

    angular - Ionic +Firestore - bool 字段检索

    ios - 使用通知从后台唤醒 iOS 应用程序

    javascript - 如何正确从 firebase 检索数据?

    javascript - 如何: Javascript files always up-to-date

    res(generated) 文件夹下的 Android Security : values. xml

    iOS 杀死应用程序时如何缓存数据?

    caching - 从并发可访问的结构中检索数据类型后,哪些数据类型可以安全地读取和写入?

    java - 创建通用对象的缓存

    网站加载已删除的文件

    php - 对于大多数响应,我应该检查 'is not modified' 吗?