所以我有一个从 Firebase 返回的对象,如下所示:
{key: {name: "test", email: "test", id: "test"}}
如何从该对象中获取 id?
如果我执行 returnItem
我得到了该对象,所以我尝试执行 returnItem[0]
但它不是一个数组,而且我尝试过 ( Object.keys(tempSnap)
但这只是给了我 key 而不是其中的对象。
这是我当前的代码:
export function sendInvitation(email) {
firebaseRef.database().ref().child('users').orderByChild('email').equalTo(email).on("value", function(snapshot) {
let tempSnap = snapshot.val();
if(tempSnap != null) {
console.log(tempSnap);
}
});
return dispatch => firebaseRef.database().ref(`${userID}/invites`).push("This is a test Message!");
}
这就是它的输出:
帮助会很棒:D
最佳答案
如果您已经知道id
这是一个字面意思,那么这就是 returnItem.id
的问题。
如果您已经知道id
它是一个变量,那么它就是returnItem[id]
.
如果您不知道键并想打印所有键及其值,则为:
Object.keys(returnItem).forEach(function(key) {
console.log(key, returnItem[key]);
});
更新
您的新代码显示了问题。当您对 Firebase 数据库执行查询时,可能会出现多个结果。因此快照包含这些结果的列表。即使只有一个结果,快照也将包含一个结果的列表。您的回调需要处理这样一个事实:它通过使用 snapshot.forEach()
循环结果来获取列表。 :
firebaseRef.database().ref().child('users').orderByChild('email').equalTo(email).on("value", function(snapshot) {
snapshot.forEach(function(child) {
let tempSnap = child.val();
console.log(tempSnap);
});
});
关于javascript - 使用 JS 访问节点中的 Firebase 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49131993/