我想从下面的结构中枚举成员对象。 我没有在node.js的经验,我已经尝试了下面的代码,它似乎并没有工作。Firebase - Cloud函数:枚举[Object对象]
exports.sendVaultUnlockedPush = functions.database.ref('/Vaults/{id}/action').onUpdate(event => {
let status = event.data.val();
if (status == 'lock') {
var db = admin.database();
var vaultRef = db.ref("/Vaults/" + event.params.id);
vaultRef.once('value').then(function(snapshot) {
var hasMembers = snapshot.child('members');
if (hasMembers) {
var memberRef = db.ref("Vaults/" + event.params.id + "/members");
memberRef.once('value').then(function(memberSnapshot) {
memberSnapshot.forEach(function(element) {
console(element.key + " - " + element.val());
}, this);
});
}
});
}
})
它引发以下错误:
Error: Firebase.DataSnapshot.forEach failed: Was called with 2 arguments. Expects no more than 1. at Error (native) at z (/user_code/node_modules/firebase-admin/lib/database/database.js:42:1666) at T.forEach (/user_code/node_modules/firebase-admin/lib/database/database.js:114:179) at /user_code/index.js:34:36 at process._tickDomainCallback (internal/process/next_tick.js:135:7)
我只是喜欢它返回的 '成员' 节点的值。我不知道这样做。 任何帮助非常感谢获得这种排序。谢谢!
这意味着它只能迭代'{X, y,z}'但不是'{{x:y},{x,y}}' Can你让我知道,我应该用什么来迭代两个参数? – Nina
@妮娜我不明白。 ** forEach **将遍历每个键。你可以用for循环遍历每个element.val()。 –
我不知道该怎么做。我只是将'function(element)'更新为'function(element.val())'? 对不起!我来自iOS背景,几天前我刚刚开始使用node.js发送来自Firebase云的推送通知。 – Nina