【发布时间】:2018-08-14 10:33:16
【问题描述】:
我正在尝试编写一个 firebase 云函数来遍历特定节点的所有子节点,检查数据库的不同部分是否有相应的数据,并将所有数值相加。
基本上,我希望云函数创建列表中所有商品的总价格,但使用数据库的不同部分来检索该商品的价格。
exports.onAddToCart = functions.database.ref('/users/user_cart/{uid}/items').onWrite((change, context) =>{
let totalCost = 0;
return admin.database().ref('/users/user_cart/' + context.params.uid + '/items').once('value').then((snapshot) => {
snapshot.forEach((child) => {
return admin.database().ref('/serv/' + child.val()).once('value').then((snapshot2) => {
totalCost += snapshot2.val().price;
});
return false;
});
return admin.database().ref('/users/user_cart/' + context.params.uid + '/price').set(totalCost);
});
});
此代码不起作用
问题是snapshot.forEach 需要返回一个布尔值而不是一个承诺。我怎样才能做到这一点?或者这不可行?
【问题讨论】:
标签: typescript firebase google-cloud-functions