我想從下面的結構中枚舉成員對象。 我沒有在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