gpt4 book ai didi

javascript - 使用 JS 访问节点中的 Firebase 数据

转载 作者:行者123 更新时间:2023-12-01 02:22:05 26 4
gpt4 key购买 nike

所以我有一个从 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!");
}

这就是它的输出:

Returned Value

帮助会很棒: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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com