Обновление нескольких путей или узла одновременно в firebase с помощью node.js? - PullRequest
0 голосов
/ 28 августа 2018

Я зацикливаюсь на статусе Ожидание 'купленные продукты. Теперь я хочу взять сумму с купленного товара и добавить ее на баланс продавца. После того, как баланс был успешно добавлен, следующий шаг - обновить статус купленного продукта с 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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...