【发布时间】:2021-01-08 13:58:58
【问题描述】:
我使用 Firebase Firestore 作为数据库。 当要出售的物品被选择并支付后,它被发送到数据库。我正在尝试从 firestore 数据库的库存数据中的项目总数中减去所选项目的数量。
这是 firestore 数据库,突出显示的是我要从中减去的项目的总量;
到目前为止,我尝试使用 for 循环迭代结帐数据数组中的每个项目以获取项目 ID 和数量。然后使用来自 firestore 的商品 ID(之前从结帐数据中获取)获取每件商品并从总数量中减去。
这是for循环的代码;
for (let item in checkoutData) {
let itemId = checkoutData[item].id;
var checkoutQty = checkoutData[item].quantity;
db.collection("inventories").where("productNumber", "==", itemId).get()
.then(function (querySnapshot) {
querySnapshot.forEach(function (doc) {
var inventoryQty = parseInt(doc.data().productQuanity);
var sub = inventoryQty - checkoutQty;
console.log(`Subtract inventory qty from checkout qty for item ${doc.data().productNumber} = ${sub}`);
});
})
.catch(function (error) {
console.log("Error getting documents: ", error);
});
}
但是当我运行这个函数时,结果是它从 firestore 数据库的库存表中的数据中减去结帐数据中最后一项的数量。
在上图中,突出显示的是结帐数据数组中最后一项的数量,用于减去错误的其余部分。
我想要实现的是,使用它们的唯一项目 ID 从 firestore 数据库中的库存数据中的项目中减去结帐数据数组中的每个项目。
【问题讨论】:
-
如果我理解正确,您想在您的 Firestore 数据库中减去一个数量并且它没有被正确反映?
-
是的,它没有正确减去。
标签: javascript html firebase google-cloud-firestore