Я зацикливаюсь на статусе Ожидание 'купленные продукты.
Теперь я хочу взять сумму с купленного товара и добавить ее на баланс продавца.
После того, как баланс был успешно добавлен, следующий шаг - обновить статус купленного продукта с Pending to Approved.
Следующий код, который я написал, чтобы выполнить вышеуказанные операции
const userRef = db.ref().child('USER');
const boughProductRef = db.ref().child('BOUGHT_PRODUCT');
boughProductRef.orderByChild('status').equalTo('Pending').on("value", snapshot => {
if (!!snapshot && !!snapshot.val()) {
_.forEach(Object.keys(snapshot.val()), key => {
var boughtProduct = snapshot.val()[key];
var sellerId = _.split(_.get(boughtProduct, 'productId'), "/")[0];
var updateBoughtProduct = boughProductRef.child(key);
userRef.child(sellerId)
.once("value")
.then(snap => {
if (!!snap && snap.val()) {
var user = snap.val();
userRef.child(sellerId).update({
balance: user.balance + boughtProduct.amount
})
}
}).then(() => {
updateBoughtProduct.update({
status: "Approved"
})
}).catch((error) => {
console.log(error, 'error');
})
})
}
});
Эти коды запускаются каждую полночь в задании cron.
Это правильный способ сделать это? или есть другие способы сделать это?
Я новичок в области FireBase и Javascript.