我对javascript非常陌生,而且我并不完全理解promise。对于像读或写这样的简单操作,我知道在代码继续之前需要一个promise,但我不完全确定如何同时处理多个promise,特别是在调用.get((.之后
我的目标是在我的Firestore数据库中查询相当深入的文档,而上级子集合中的文档名称我并不知道,因为它们是由用户创建的。每个用户都会有位置,这些位置也会有客人,我的功能旨在搜索客人并根据字段值选择他们。到目前为止,我的代码是这样的。有更好的方法吗?
async function getGuests() {
var results = [];
var users = await db.collection('users').get();
users.forEach(async function(doc) {
var places = await doc.collection('places').get();
places.forEach(async function(doc2) {
var guests = await doc2.collection('guests').where(...).get();
return results.concat(guests);
});
return results;
});
return results;
}
层次结构看起来像:
users/{userID}/places/{place_name}/guests/{guest}
听起来您只想执行集合组查询。如果你只想在所有名为";客人";。
const querySnapshot = await db.collectionGroup('guests').get();
// iterate queryShapshot to get document contents