如何使用Http缓存控制保存firestore请求?

2023-12-03

假设我有一个运行 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(使用前将#替换为@)

如何使用Http缓存控制保存firestore请求? 的相关文章

随机推荐

  • Java - 如何连接到 Mac OS 上的“复制”和“粘贴”菜单

    我了解您可以 Where CustomMacOSXController implements implements MRJAboutHandler CustomMacOSXController macOSXController new Cu
  • 删除一篇文章并拉入下一页的第一篇文章

    我正在尝试建立一个带有分页系统的博客 例如每页 5 篇文章 分页本身一切都很好 但在每篇文章旁边我都添加了一个 删除 按钮 允许管理员动态删除 jquery 相关文章及其内容 我现在想要的是当我删除一篇文章时 附加 不刷新 下一页的第一篇文
  • 通过反射调用带有可选参数的方法

    我在使用带有可选参数的 C 4 0 时遇到了另一个问题 我如何调用一个函数 或者更确切地说是一个构造函数 我有ConstructorInfo对象 我知道它不需要任何参数 这是我现在使用的代码 type GetParameterlessCon
  • 添加引用对话框缺少 .NET Core 项目中的程序集部分

    我一直在创建我的第一个 NET Core 项目 在本例中 只是一个控制台应用程序 我注意到 当我右键单击依赖关系并选择添加参考 出现的对话框不再包含组件部分 在以前的版本中 此部分将列出所有 Microsoft 程序集并包含每个程序集的一些
  • Sybase BCP 与 MS SQL BCP

    我有一个需要使用的多数据库设置 并且两者都有自己的 bcp 版本 但其行为方式不同 另外 两者都在我的 PATH 中 并且 Sybase 列在 MS SQL exe 之前 因此从命令行调用 bcp 总是会命中 Sybase exe 首先 版
  • 将列值设置为 SQL 查询结果中的列名

    我想读取一个表 其中的值将是 sql 查询结果的列名 例如 我有 table1 作为 id col1 col2 0 name ax 0 name2 bx 0 name3 cx 1 name dx 1 name2 ex 1 name3 fx
  • 为什么我应该在并行流中使用并发特性和收集?

    为什么我应该在并行流中使用并发特性和收集 List
  • 为什么 onBeforeFirstShow 有效?

    我一直在学习主从演示 下面是一个片段Master controller js onInit function this getView addEventDelegate onBeforeFirstShow function this get
  • 无法加载文件或程序集“xxx”或其依赖项之一。尝试加载格式不正确的程序

    我刚刚将 Subversion 的修订版本签入了新文件夹 打开解决方案 运行时我得到这个 无法加载文件或程序集 xxxx 或其依赖项之一 试图加载格式不正确的程序 这与我不久前签入的代码相同 为什么现在它要这样做 我现在还在该 xxx 项目
  • 关于常量的一般CS问题

    在使用 C 编程之后 我正在使用 C 进行编程 所以我使用了很多常量 例如 DEFAULT USER ID REMOTE ADDRESS 等 在我看来 使用这样的常量是相当 老式 的 也许还有其他更优雅的方法来在对象之间使用一些常量数据 关
  • 单元格颜色 Django-Tables2

    问题 在哪里编辑 django 代码以根据业务逻辑更改单个单元格的背景颜色 在我的views py中 我有捕获列 pts 最大值的逻辑 def show teams request reg Teamoffense objects filte
  • 这些关于指针的陈述是否具有相同的效果?

    做这个 char myString hello 和这个有同样的效果吗 char actualString hello char myString actualString No char str1 Hello world char arra
  • iPhone 向 Google Apps 发送数据并从 Google Apps 检索数据?

    我见过一些 iPhone 应用程序具有将数据导出到 Google Apps 文档或电子表格的功能 我想为我的 iPhone 应用程序添加类似的功能 有相关的 API 吗 另一个方向怎么样 有没有办法从 Google Apps 电子表格获取数
  • JTable 与自定义 TableModel

    我正在尝试在 Java GUI 上实现 JTable 它可以用文件中的值填充自身 并允许用户对各种单元格进行修改 由于我在 Netbeans IDE 中使用 GUI 编辑器 因此我的第一反应是从调色板将 JTable 添加到我的表单中 但是
  • Swift 自定义 UITableViewCell 不显示数据

    我是 Swift 和 iOS 开发的新手 我正在尝试创建一个自定义 UITableViewCell 我已经在 UIViewController 内的 UITableView 顶部的主情节提要中创建了单元格 当我加载默认单元格之一时 我能够用
  • Jersey:将所有 POST 数据消耗到一个对象中

    我在我的应用程序中使用 Jersey 1 8 我正在尝试消费POST服务器上的数据 数据的类型是application x www form urlencoded 有没有一种方法可以获取一个对象中的所有数据 也许是Map
  • RSA 我应该使用 X.509 还是 PKCS #1

    使用案例 我有一个用例 其中客户端生成私钥和公钥 并将 Base 64 编码的公钥发送到服务器 在服务器端 我将使用此公钥对消息进行加密 并将加密的消息发送到客户端 客户端使用其私钥对其进行解密 商定的算法是 RSA 问题出在服务器端 我发
  • PHP mail() 附件已损坏

    我一直在努力尝试使用 PHP 发送带有附件的电子邮件 它曾经有效 但消息正文被打乱 现在我的邮件正文可以正常工作 但附件已损坏 我曾经对消息正文使用 Base64 编码 但现在使用 7 位 谁能告诉我我做错了什么 PS请不要告诉我应该使用预
  • 页面刷新后 $stateParams 为 null

    当通过 state go 传递 stateParams 时 当我直接单击链接时 它会正确显示 但在页面刷新或通过另一个窗口打开后会变为 null 我有以下功能 scope urlvalues function url page var re
  • 如何使用Http缓存控制保存firestore请求?

    假设我有一个运行 firebase firestore 数据库的网络 移动应用程序 我的应用程序设置为主要服务动态内容完全存储在 firestore 中 所以我们讨论的是缓存动态内容 例如 如果用户加载页面 A 它将向 firestore