火力地堡无法与“快照”
问题描述:
我正在写使用火力地堡的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
已经被定义,因此没有问题应与访问用户的信息了。
任何指针将大规模赞赏!
答
看着由您共享的代码,您所定义user
在数据库中,但在尝试访问users
这可能导致你得到的错误。确保你使用的是正确的ref
。
答
对我来说,下面的工作:
//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);
});
答
维韦克是正确的,我没有用user
了,本来还导致一个错误,但主要的问题是,阅读代码,有database
传递给它,分配给firebase.database()
函数内居住。代码更改为这个工作得很好:
database.ref('/user/' + uid).once('value').then(function(snapshot) {
var sessionCount = snapshot.val().session_count;
});
干杯的三分球!
当val()返回null时,表示在您查询的位置没有数据。仔细检查你的参考点是否指向你要读取的数据库中的正确路径。 –