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
相关产品推荐
相关产品推荐

