Застрял в цепи обещаний в моем коде ниже.
В моей базе данных реального времени есть два узла. пользователи и заказы.
У меня есть пользователи, где хранится сумма вознаграждения. У меня есть триггер БД на заказы, когда создается новый заказ. Мое требование в триггере создания - получить сумму вознаграждения от узла пользователей и вычесть сумму заказа, а затем обновить новое значение для пользователей.
exports.on_order_received_deduct_doodle_cash = functions.database.ref("/orders/{id}")
.onCreate((change, context) => {
const order = change.val();
const customerObj = order.customer
const orderObj = order.order
const afterDiscount = orderObj._afterDiscount
const uid = customerObj._uid
var db = admin.database();
const userRef = db.ref('users/')
return userRef.child(uid).once("value").then(
(resp) => {
const userObj = resp.val()
const doodleCash = userObj._doodleCash
console.log("user current doodle cash is::" + doodleCash)
return doodleCash
}
).then(
(doodleCash) => {
if(doodleCash > afterDiscount){
const val = doodleCash - afterDiscount
return userRef.child(uid).update({"_doodleCash" : val})
}else{
console.error("cannot be a negative value")
return null
}
}
).catch(
(err) => console.error("something went wrong:" + err)
)
})
это правильный способ передать значение из первого обещания другому?