You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Firebase Cloud Functions中Firestore get方法的计费规则咨询:每个get操作是否需单独付费?

Firebase Firestore 计费规则:多个get()操作的计费说明

嘿,我来帮你理清这个计费问题——你代码里的4个get()方法会被算作4次独立的Firestore读取操作,需要分别支付费用。

核心原因:

Firestore的计费是基于单个文档读取请求来统计的,不管你是在Cloud Function、客户端还是其他环境调用get(),每一次成功发起并完成的文档读取请求(哪怕目标文档不存在),都会被计入一次读取次数。

结合你的代码分析:

你代码里的这4个await ...get()调用,每一个都是独立的读取操作:

  • await db.doc(videos/${videoID}).get(); → 1次读取
  • await db.doc(meinprofilsettings/${author}).get(); → 第2次读取
  • await db.doc(Recovering/${videoowner}).get(); → 第3次读取
  • await db.doc(Recovering/${author}).get(); → 第4次读取

小优化建议:

虽然计费次数没法减少,但你可以用Promise.all()把这些串行的get()改成并行执行,这样能大幅缩短Cloud Function的运行时间(间接节省函数的执行时长费用),代码示例如下:

// 并行获取所有需要的文档,执行效率更高,计费次数仍为4次
const [videouid, userSnap, recoveringuser1, recoveringuser2] = await Promise.all([
  db.doc(`videos/${videoID}`).get(),
  db.doc(`meinprofilsettings/${author}`).get(),
  db.doc(`Recovering/${videoowner}`).get(),
  db.doc(`Recovering/${author}`).get()
]);

另外要注意:如果某个get()请求的文档不存在,Firestore依然会收取一次读取费用,这点在设计逻辑时可以留意。

内容的提问来源于stack exchange,提问作者Michael m.

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.28 11:32:49