首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用于汇总或汇总值的Firebase函数

用于汇总或汇总值的Firebase函数
EN

Stack Overflow用户
提问于 2017-05-12 19:00:54
回答 4查看 6.1K关注 0票数 1

我一直在试图通过新的firebase云函数来总结价格,以获得一个总数。

代码语言:javascript
复制
"Cart" : {
    "-Ksdasd50oR04q073k5" : {
      "ID" : 0.01,
      "price" : 20
    },
    "-KhOc0CGdsddihGB2N" : {
      "ID" : 001,,
      "price" : 20
    },

这是我的开始

代码语言:javascript
复制
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);
      }
  });
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2017-05-12 21:53:10

这应该可以做到:

代码语言:javascript
复制
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);
      }
  });
票数 3
EN

Stack Overflow用户

发布于 2017-05-13 01:24:02

试试这个:

代码语言:javascript
复制
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]);
      }
  });
票数 1
EN

Stack Overflow用户

发布于 2017-05-12 19:02:53

因为总需求需要改变,所以它应该是一个var而不是const

变化

代码语言:javascript
复制
const total = 0;

代码语言:javascript
复制
var total = 0;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43944823

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档