Google Firebase:snap.val()。username返回未定义

时间:2018-12-25 23:32:40

标签: javascript firebase firebase-realtime-database

我在实时数据库中获得了该项目,其中电子邮件子项等于localStorage中的电子邮件,并且可以正常工作。

但是,当我尝试登录用户名时,它返回的是undefined而不是实际的用户名

let useremail = localStorage.getItem("useremail")

    firebase.database().ref("/users").orderByChild('email').equalTo(useremail).on("value", function(snap){
        let data = snap.val();
        console.log(data.username)
    })

有人知道如何解决此问题吗?

数据库看起来像这样

database looks like this

如果我记录数据,则显示: enter image description here

并且如果我登录useremail,则会显示正确的字符串

1 个答案:

答案 0 :(得分:3)

尝试一下:

let useremail = localStorage.getItem("useremail")

firebase.database().ref("/users").orderByChild('email').equalTo(useremail).on("value", function(snap){
snap.forEach(function(childSnapshot)){
    let data = childSnapshot.val();
    console.log(data.username)
 });
});

由于引用位于节点users上,因此您需要循环才能访问属性。