用于汇总或聚合值的Firebase Cloud函数
我一直在努力总结价格,通过新的firebase云功能得出总价格用于汇总或聚合值的Firebase Cloud函数,firebase,firebase-realtime-database,google-cloud-functions,Firebase,Firebase Realtime Database,Google Cloud Functions,我一直在努力总结价格,通过新的firebase云功能得出总价格 "Cart" : { "-Ksdasd50oR04q073k5" : { "ID" : 0.01, "price" : 20 }, "-KhOc0CGdsddihGB2N" : { "ID" : 001,, "price" : 20 }, 这是我的开始 exports.cartadd = functions.database.ref('Cart/{ui
"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);
}
});
由于总数需要更改,它应该是
var
而不是const
改变
const total = 0;
到
由于总数需要更改,它应该是
var
而不是const
改变
const total = 0;
到
这应该做到:
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);
}
});
这应该做到:
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);
}
});
试试这个:
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]);
}
});
试试这个:
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]);
}
});
是的,更改了它,但仍然没有输出反映在我的日志中是的,更改了它,但仍然没有输出反映在我的日志中在什么条件下你需要计算这个和?在什么条件下你需要计算这个和?@Bob只是想知道你是否有知识。我们可以在毫秒内从mysql/sql中获取数百万条记录的总和…但是我担心在前端获取它们并对它们求和将不好,并且可能会崩溃browser@Luckyy:我不知道,但我猜对那么多记录求和需要更长的时间。@Bob只是想知道你是否有知识。我们可以在毫秒内从mysql/sql中获取数百万条记录的总和…但是我担心在前端获取它们并对它们求和将不好,并且可能会崩溃browser@Luckyy当前位置我不知道,但我猜对那么多记录求和需要更长的时间。