【发布时间】:2021-04-29 03:10:19
【问题描述】:
我正在尝试使用array-contains-any 查询不同集合中的多个文档,方法是使用Promise.all() 一次获取所有文档。
我检查了路径是否正确,文档是否存在,key是否存在于文档中,一切正常。
querySnapshots 和 snapshots 没有检索到数据。在日志的某处说:"_size":0,"_materializedDocs":null。
let promises = []
depIds.forEach(id => {
const prodIds = groupedProducts[id].reduce((acc, val) => [...acc, val.prodId], []);
console.log("All prodIds: ", prodIds, "; also id is: ", id);
promise = admin.firestore()
.collection('Products')
.doc('Departments')
.collection(id)
.where('key', 'array-contains-any', prodIds)
.get();
promises.push(promise)
})
const querySnapshots = await Promise.all(promises);
const snapshots = querySnapshots.map(doc => {
console.log("docs: ", JSON.stringify(doc))
return doc;
});
所以我的问题是:
-
可以如上查询吗?
-
Promise.all()命令后如何获取实际数据?
感谢您的帮助!
【问题讨论】:
标签: javascript firebase google-cloud-firestore google-cloud-functions