【发布时间】:2020-08-25 13:51:43
【问题描述】:
我有一组 Firestore 文档 IDS。我需要将下面的代码转换为异步/等待。我通常对一个文档使用 async/await,但现在我需要 for 循环。最后一个 console.log(firestoreProducts) 是空的。
function getFirestoreProducts(allSKUsNoDuplicates) {
//allSKUsNoDuplicates - array of document ids
let db = firebase.firestore();
var db_user = db.collection("users").doc(firebase.auth().currentUser.email);
var products = db_user.collection("products");
var firestoreProducts = []
//var products = db_user.collection("products").where("productSKU", "in", allSKUsNoDuplicates).orderBy("productSKU", "asc");// ups only 10 can be in array
allSKUsNoDuplicates.forEach(function (currentValue, index) {
//console.log(currentValue)
products.doc(currentValue)
.get()
.then(function (doc) {
if (doc.exists) {
//console.log("Document data:", doc.data().productSKU);
firestoreData = {
productSKU: doc.data().productSKU,
productBuyPriceNet: (doc.data().productBuyPriceNet) ? doc.data().productBuyPriceNet : 0
}
firestoreProducts.push(firestoreData);
} else {
// doc.data() will be undefined in this case
console.log("No such document!");
}
}).catch(function (error) {
console.log("Error getting document:", error);
});
})
console.log(firestoreProducts)
}
【问题讨论】:
标签: javascript google-cloud-firestore async-await