通过迭代子节点添加值

时间:2017-06-30 22:42:40

标签: node.js firebase firebase-realtime-database google-cloud-functions

My firebase-database structure click here

我在node.js中的函数代码:

-1

我的计划是在其下方迭代GyroScope X轴值并添加值,例如在第一次迭代(图中的0.004 ... 555)和第二次迭代(0.002 ... 645)中,添加这些值并将结果更新到不同的路径(如果存在)或创建路径并设置结果。我没有收到任何错误,但它也没有更新,它更新0而不是添加值。哪部分代码错了?

1 个答案:

答案 0 :(得分:0)

据我所知,您每次都在设置0。加载数据后,您也没有返回承诺,这意味着您的函数可能会在最终});之后的任何时间中止。

这是一个更好的变体:

exports.addFunction = functions.database
    .ref('/Users/{uid}/GyroScope X-axis')
    .onWrite(event => {

  var add = 0;
  const addGyroX = admin.database().ref('/GyroXaddition');
  const userRef = event.data.adminRef;  

  return userRef.once('value').then(snapshot => {
    snapshot.forEach(childrensnap => {
      var reading = childrensnap.key;
      var childData = reading.val();
      add = add+childData;
    });
    return addGyroX.set(add); 
  });
});