Javascript 类型错误:undefined不是函数-云函数中的Promise.all()错误
我正在尝试获取数据库中所有用户的文档ID。 我为此编写了以下代码:Javascript 类型错误:undefined不是函数-云函数中的Promise.all()错误,javascript,firebase,google-cloud-functions,Javascript,Firebase,Google Cloud Functions,我正在尝试获取数据库中所有用户的文档ID。 我为此编写了以下代码: exports.scheduledFunction=functions.pubsub .时间表(每2分钟一次) .onRun(异步上下文=>{ log('这将每2分钟运行一次!'); 试一试{ const usersRef=await admin//工作正常,我得到了集合的QuerySnapshot .firestore() .collection('用户') .get(); log('usersRef:',usersRef);
exports.scheduledFunction=functions.pubsub
.时间表(每2分钟一次)
.onRun(异步上下文=>{
log('这将每2分钟运行一次!');
试一试{
const usersRef=await admin//工作正常,我得到了集合的QuerySnapshot
.firestore()
.collection('用户')
.get();
log('usersRef:',usersRef);
const userDocs=wait Promise.all(usersRef);//这给出了错误
log('User Docs:',userDocs);
}捕捉(错误){
log('err:',err);
}
返回null;
});
在promise.all()
中传递QuerySnapshot承诺时,我获得此错误:
//错误
TypeError:undefined不是函数
at Function.all()
位于exports.scheduledFunction.functions.pubsub.schedule.onRun(/srv/index.js:624:38)
在
在进程中。_tickDomainCallback(internal/process/next_tick.js:229:7)
我希望从Promise.all()的结果中收集所有文档ID
非常感谢您的帮助。等待承诺。不需要全部,因为您已经使用
get()
和wait
在第一条语句中加载了所有用户文档
因此,它应该是:
const usersDocs = await admin
.firestore()
.collection('Users')
.get();
console.log('User Docs: ', userDocs);
wait Promise.all
不需要,因为您已经使用get()
和wait
在第一条语句中加载了所有用户文档
因此,它应该是:
const usersDocs = await admin
.firestore()
.collection('Users')
.get();
console.log('User Docs: ', userDocs);
接受一系列的承诺usersRef
既不是数组,也不是承诺。由于您已经在等待get()返回的承诺,这使得usersRef
成为一个立即可用的对象,因此您需要根据这些条件使用它。因为它是一个快照而不是一个引用,所以您可能应该用不同的名称来命名它。例如:
const usersSnapshot = await admin
.firestore()
.collection('Users')
.get();
const usersDocs = usersSnapshot.docs
console.log(usersDocs)
usersSnapshot.forEach(doc => {
console.log(doc)
})
接受一系列的承诺usersRef
既不是数组,也不是承诺。由于您已经在等待get()返回的承诺,这使得usersRef
成为一个立即可用的对象,因此您需要根据这些条件使用它。因为它是一个快照而不是一个引用,所以您可能应该用不同的名称来命名它。例如:
const usersSnapshot = await admin
.firestore()
.collection('Users')
.get();
const usersDocs = usersSnapshot.docs
console.log(usersDocs)
usersSnapshot.forEach(doc => {
console.log(doc)
})
尝试删除前面的
wait
admin@sathish1409这不会有什么不同。这会产生不同,你只是引用函数,对吗?它将在Promise等待任何函数。所有console.log('usersRef:',usersRef')可以告诉我什么是console.log
return返回查询快照删除wait
,它位于admin@sathish1409这不会有什么不同。这会产生不同,你只是引用函数,对吗?它将在Promise等待任何函数。所有console.log('usersRef:',usersRef')可以告诉我什么是console.log代码>返回返回返回查询快照