Firebase Firestore读取费用及Storage下载计费规则澄清咨询
Firebase 相关计费问题澄清
1 连续前缀查询的Firestore读取计费规则
你看到的两个Stack Overflow回答不存在本质矛盾,只是对应不同的API调用配置:
- 你当前使用的是默认配置的
get()方法,读取源策略为Source.DEFAULT,且开启了默认离线持久化时:在线状态下Firestore会先和服务端同步文档版本标识,若比对后发现符合查询条件的文档在本地已有缓存且和服务端版本完全一致,不会从服务端重新拉取文档内容,也不会产生重复的读取计费;仅当服务端文档有更新时,才会拉取新版本并按实际拉取的文档数量计费。 - Alex Mamo提到的「在线始终读取服务端版本」是指定读取源为
Source.SERVER的场景,该配置下无论本地是否有缓存,都会全量从服务端拉取符合条件的文档并计费。
你的场景中后续查询返回的子集文档如果已经在上一次查询中被缓存、且服务端无对应文档更新,不会产生重复的读取费用。
2 重复下载Storage图片的流量计费规则
Firebase Storage本身没有默认的客户端缓存逻辑,不会自动识别已下载的资源:如果你的客户端没有额外配置缓存策略,每次下载同一张图片都会触发网络请求,产生的下行流量会被正常计费。
你可以通过两个操作避免重复扣费:
- 给Storage中的图片资源配置合适的
Cache-Control响应头,指定缓存有效期 - 客户端使用带缓存功能的图片加载库加载Storage图片链接,缓存生效后重复加载同一张图片不会触发网络请求,也就不会产生额外流量费用。
内容的提问来源于stack exchange,提问作者Ricky
相关产品推荐
相关产品推荐

