2017-04-04 192 views
0

我正在写使用火力地堡的Web应用程序,阅读从结构类似于以下的数据库信息来访问数据:火力地堡无法与“快照”

"user" : { 
"-KcNmMmqbSvmVXx2vn4A" : { 
    "email" : "[email protected]", 
    "firstname" : "fire", 
    "membership_tier" : 1, 
    "session_count" : 0, 
    "surname" : "base" 
} 

我试图读取次数用户已经进行的会话 - 但是没有结果被返回。

我试过到目前为止:

firebase.database().ref('/users/' + uid).once('value').then(function(snapshot) { 
    var sessionCount = snapshot.val().session_count; 
}); 

目前snapshot.val()将返回null。我发现了一个错误,指出:

Uncaught (in promise) TypeError: Cannot read property 'session_count' of null

uid已经被定义,因此没有问题应与访问用户的信息了。

任何指针将大规模赞赏!

+2

当val()返回null时,表示在您查询的位置没有数据。仔细检查你的参考点是否指向你要读取的数据库中的正确路径。 –

回答

1

看着由您共享的代码,您所定义user在数据库中,但在尝试访问users这可能导致你得到的错误。确保你使用的是正确的ref

1

对我来说,下面的工作:

//INITIALIZE FIREBASE WEB APP 
    firebase.initializeApp(config); 
    var db = firebase.database(); 
    var auth = firebase.auth(); 

    db.ref('/whatever/').once('value').then(function(snap) { 
    if(snap.val()){ 
     console.log(snap.val().whateverProperty); 
    } else { 
     console.log('/whatever/whateverProperty node does not exist!'); 
    } 
    }, function(error) { 
    // The Promise was rejected. 
    console.log(error); 
    }); 
0

维韦克是正确的,我没有用user了,本来还导致一个错误,但主要的问题是,阅读代码,有database传递给它,分配给firebase.database()函数内居住。代码更改为这个工作得很好:

database.ref('/user/' + uid).once('value').then(function(snapshot) { 
    var sessionCount = snapshot.val().session_count; 
}); 

干杯的三分球!