我的firebase-database结构如下:
而我在node.js中的功能代码:
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;
userRef.once('value').then(snapshot => {
snapshot.forEach(childrensnap => {
var reading = childrensnap.key;
var childData = reading.val();
add = add+childData;
return addGyroX.set(childData);
});
});
});
我的计划是遍历GyroScope X轴的值,并在迭代时将其值更新到新创建的路径(GyroXaddition)。我没有收到任何错误,但也没有更新。
最佳答案
您提供的代码绝对无法使用,并且可能会引发很多错误。我注意到了以下几点:
您没有退还诺言,这会给您带来麻烦。
您的forEach
位置不正确,需要在函数体内调用。
您的set
引用了来自其他范围的数据(同样,如果您要遍历多个值,则.set
只会使用最后一个值)。event.data.adminRef
是正确的大写字母。snapshot.key
不是snapshot.key()
该代码片段解决了一些问题,但是我不确定您要如何使您一路走好。
return userRef.once('value').then(snap => {
var sets = [];
snap.forEach(childsnapshot => {
var reading = childsnapshot.key;
var childData = reading.val();
});
});
关于node.js - 代码没有更新,以及如何知道迭代是否正在发生?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44853141/