我想查询DocumentReference
的两个子集合。
我尝试执行以下操作:
var promise1 = admin.firestore().collection(`players/${id}/collection1`).get();
var promise2 = admin.firestore().collection(`players/${id}/collection2`).get();
return Promise.all(promise1, promise2)
问题是,通过执行以下操作,我得到以下错误:
TypeError:(var)[Symbol.iterator]不是函数 在Function.all(本机) 在exports.onSubmission.functions.firestore.document.onCreate(/user_code/index.js:671:20)
因此,我尝试将它们嵌套如下,并且效果很好。
return admin.firestore().collection(`players/${id}/collection1`).get().then(foundersSnapshot => {
return admin.firestore().collection(`players/${id}/collection2`).get().then(metricsSnapshot => {
但是,在部署时,我会收到警告
避免嵌套承诺
那么,这种情况下的最佳做法是什么?我更喜欢通过Promise.all
进行操作,但这是行不通的。另外,它会在then(results => {
中输出两个集合作为结果。因此,在这种情况下,我可以安全地将results[0]
视为“ collection1”,并将“结果[1]”视为“ collection2”吗?
答案 0 :(得分:1)
Promise.all()
需要单个数组参数。注意promise1
和promise2
周围的方括号,它们构成一个内联数组:
Promise.all([promise1, promise2])