通过迭代子节点来增加值
Adding values through iterating child nodes
还有我在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(add);
});
我的计划是仅遍历其下的 GyroScope X-axis 值并添加值,例如在第一次迭代(0.004...555 来自图)和第二次迭代(0.002... 645),添加这些值并将结果更新到不同的路径(如果存在)或创建路径并设置结果。我没有收到任何错误,但它也没有更新,它更新的是 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);
});
});
还有我在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(add);
});
我的计划是仅遍历其下的 GyroScope X-axis 值并添加值,例如在第一次迭代(0.004...555 来自图)和第二次迭代(0.002... 645),添加这些值并将结果更新到不同的路径(如果存在)或创建路径并设置结果。我没有收到任何错误,但它也没有更新,它更新的是 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);
});
});