Firebase检索返回未定义/对象对象

时间:2019-01-27 15:20:16

标签: javascript html firebase firebase-realtime-database

我目前正在使用以下代码从Firebase检索一个孩子:

function fetchUserdetails() {
  firebase.database().ref().child('login/').orderByChild('username').equalTo('ivanaldwin').on("value", function(snapshot) {
    document.getElementById('fullname').innerHTML = snapshot.val().username;
    console.log(snapshot.val()); //debug in console
    snapshot.forEach(function(data) {
        console.log(data.key);
        alert('yep im working dood');
    });
});
}

window.onload = fetchUserdetails();

但是,如果我使用snapshot.val().username;,则代码将在输出中呈现undefined。但是,如果我仅使用snapshot.val(),则输出将为[Object object]。这是我的Firebase布局:se

2 个答案:

答案 0 :(得分:2)

要检索用户名,请尝试以下操作:

snapshot.forEach(function(data) {
    let userName = data.val().username;
    console.log(data.key);
    alert('yep Im working dude');
});

您的快照位于节点login上,因此,在使用forEach循环之后,您可以访问子属性。

答案 1 :(得分:0)

您需要使用数组索引

document.getElementById('fullname').innerHTML = snapshot.val()[0].username;

但是我认为您需要该元素0,而您没有。 也许尝试

document.getElementById('fullname').innerHTML = snapshot.val().child('1').username