我一直在试图通过新的firebase云函数来总结价格,以获得一个总数。
"Cart" : {
"-Ksdasd50oR04q073k5" : {
"ID" : 0.01,
"price" : 20
},
"-KhOc0CGdsddihGB2N" : {
"ID" : 001,,
"price" : 20
},这是我的开始
exports.cartadd = functions.database.ref('Cart/{uid}').onWrite(event => {
let ref = admin.database().ref('Cart/{uid}');
return ref.once('value').then(snapshot => {
if (snapshot.hasChildren()) {
var total= 0;
snapshot.forEach(function(child) {
total += snapshot.val().price;
});
console.log(total);
}
});发布于 2017-05-12 21:53:10
这应该可以做到:
exports.cartadd = functions.database.ref('Cart').onWrite(event => {
const snapshot = event.data;
if (snapshot.hasChildren()) {
var total= 0;
snapshot.forEach(function(item) {
total += item.child('price').val();
});
console.log(total);
}
});发布于 2017-05-13 01:24:02
试试这个:
exports.cartadd = functions.database.ref('Cart').onWrite(event => {
const snapshot = event.data;
const totalRef = admin.database().ref("Cart/total");
if (snapshot.hasChildren()) {
let total= 0;
snapshot.forEach(function(item) {
total += item.child('price').val();
});
const transaction = totalRef.set(total).then(()=>{console.log(total);});
return Promise.all([transaction]);
}
});发布于 2017-05-12 19:02:53
因为总需求需要改变,所以它应该是一个var而不是const。
变化
const total = 0;至
var total = 0;https://stackoverflow.com/questions/43944823
复制相似问题