关于计费自动重查询的确认:Firebase缓存读取规则问询
Firebase Firestore会话Inactive超30分钟后的缓存读取与计费规则确认
核心结论
当会话inactive超过30分钟后,Firebase Firestore不会优先读取本地非过期缓存,而是直接发起服务器查询,对应你例子中的选项A,会收取10次文档读取费用。
详细解释
Firebase Firestore的自动离线缓存,在会话inactive时长超过30分钟后,会被系统判定为"失效状态"——即便缓存本身未到过期时间,默认查询逻辑也会绕过缓存,直接向服务器请求最新数据并同步更新缓存。这一机制的设计目的是确保用户长时间离开后返回应用时,能获取到服务器端的最新数据,避免使用过时的缓存内容。
对应场景示例
假设你有一个返回10份文档的查询,且这些文档已被Firebase自动缓存。当用户inactive超30分钟后返回会话并执行该查询:
- Firebase会直接向服务器请求这10份文档的最新版本
- 系统会收取10次文档读取费用(而非仅1次默认读取费用)
- 服务器返回数据后,会自动更新本地缓存
自定义缓存策略补充
如果需要强制优先读取缓存,可以通过手动指定查询来源实现,例如:
// Web示例:强制从缓存读取 db.collection("your-collection") .where("field", "==", "value") .get({ source: 'cache' }) .then((querySnapshot) => { // 处理缓存数据 });
但这属于自定义缓存架构的范畴,并非Firestore的默认行为。官方文档中提到的"重新计算并直接从服务器获取",正是指默认情况下的行为逻辑。
内容的提问来源于stack exchange,提问作者Nathan
相关产品推荐
相关产品推荐

