Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/409.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript “如何执行”;其中;在Cloud Firestore中使用文档ID进行查询_Javascript_Database_Firebase_Google Cloud Firestore - Fatal编程技术网

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,
};
});
}