Javascript “如何执行”;其中;在Cloud Firestore中使用文档ID进行查询
下面是我的代码:Javascript “如何执行”;其中;在Cloud Firestore中使用文档ID进行查询,javascript,database,firebase,google-cloud-firestore,Javascript,Database,Firebase,Google Cloud Firestore,下面是我的代码: 让newTems={} 让id=['xyz','abc'] 让temRef=wait db.collection(“模板”) 对于IDs中的每个id,我正在检查id是否等于“模板”集合中任何文档的documentID,并将name与id映射到newTems id.forEach((id,i)=>{ 让temSnap=temRef.where(admin.firestore.FieldPath.documentId(),'=',id.get()) temSnap.forEach
让newTems={}
让id=['xyz','abc']
让temRef=wait db.collection(“模板”)
对于IDs
中的每个id
,我正在检查id
是否等于“模板”集合中任何文档的documentID,并将name
与id
映射到newTems
id.forEach((id,i)=>{
让temSnap=temRef.where(admin.firestore.FieldPath.documentId(),'=',id.get())
temSnap.forEach(doc=>{
设temData=doc.data()
纽特姆斯[i]={
id:temData.doc.id,
名称:temData.name,
}
})
})
我听到一个错误,说
TypeError: temSnap.forEach is not a function
我试图寻找任何语法错误,但没有找到任何。为什么会这样
谢谢你的帮助。这里有两个问题。第一个是调用
get()
而不等待tempSnap
调用,因为这是async
调用,所以不能在forEach
中使用它,因为forEach
不支持async
要解决您的问题,您首先需要使用for循环
通过ID循环,因为迭代器支持async
调用。第二种方法是在get()
调用中使用wait
您的代码如下所示:
让newTems={}
让id=['xyz','abc']
让temRef=wait db.collection(“模板”)
for(设i=0;i{
设temData=doc.data();
纽特姆斯[i]={
id:temData.doc.id,
名称:temData.name,
};
});
}