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

Firestore中改用Promise替代forEach,调用ref1.map触发TypeError报错

解决Firestore QuerySnapshot无法使用map的问题

你遇到的TypeError: ref1.map is not a function错误,原因是await firestore.collection("collection").get()返回的ref1是Firestore的QuerySnapshot对象,不是数组,自然没有map方法。

要遍历其中的文档并并行处理异步逻辑,需要使用QuerySnapshot自带的docs属性——这是一个包含所有文档快照的数组,基于它就能调用map了:

const querySnapshot = await firestore.collection("collection").get();
await Promise.all(querySnapshot.docs.map(async (doc) => {
  // 编写你的异步处理逻辑,比如读取文档数据:
  // const docData = doc.data();
  // const docId = doc.id;
}));

如果只是单纯遍历文档不需要并行异步操作,也可以直接用QuerySnapshot的forEach方法,但你的场景是要替换forEach为Promise.all处理异步,所以上面的docs.map方案才是正确的。

内容的提问来源于stack exchange,提问作者faccio

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 18:25:36