如何使用 Http cache-control 保存 firestore 请求?
How to save firestore requests by using Http cache-control?
假设我有一个 web/mobile 应用 运行 firebase firestore 数据库。
我的应用设置为主要提供完全存储在 firestore 中的动态内容。
所以我们在谈论缓存动态内容
如果用户加载页面 A,它将向 firestore 发出 1 个请求(例如)。如果这个用户去页面 B 5 分钟后返回页面 A,我不希望应用程序在内容没有改变的情况下再次发出请求。
我听说了 http cache-control
headers 但我担心的是。如果cache control去查firestore看看内容是否还是一样,这个操作会不会被firestore算作一次请求?
Firestore 不会以 HTTP Cache-Control headers 适用的方式发出请求。
但是,protocol 包含一个恢复令牌的概念,它允许稍后恢复整个查询,可能避免重新传输与查询匹配的任何未更改文档。
如果您 enable persistence 在您的网络应用程序中,Firestore 会为您在本地 IndexedDB 中缓存文档和恢复令牌。如果您稍后返回页面,它将透明地使用恢复令牌并避免重传。
记一个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 将请求该页面的数据,但服务器基本上会回应说没有任何变化:不会传输任何文件,也不会收取确认费用。
假设我有一个 web/mobile 应用 运行 firebase firestore 数据库。
我的应用设置为主要提供完全存储在 firestore 中的动态内容。
所以我们在谈论缓存动态内容
如果用户加载页面 A,它将向 firestore 发出 1 个请求(例如)。如果这个用户去页面 B 5 分钟后返回页面 A,我不希望应用程序在内容没有改变的情况下再次发出请求。
我听说了 http cache-control
headers 但我担心的是。如果cache control去查firestore看看内容是否还是一样,这个操作会不会被firestore算作一次请求?
Firestore 不会以 HTTP Cache-Control headers 适用的方式发出请求。
但是,protocol 包含一个恢复令牌的概念,它允许稍后恢复整个查询,可能避免重新传输与查询匹配的任何未更改文档。
如果您 enable persistence 在您的网络应用程序中,Firestore 会为您在本地 IndexedDB 中缓存文档和恢复令牌。如果您稍后返回页面,它将透明地使用恢复令牌并避免重传。
记一个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 将请求该页面的数据,但服务器基本上会回应说没有任何变化:不会传输任何文件,也不会收取确认费用。