[英]Firebase unable to access data with “snapshot”
我正在編寫一個使用Firebase的Web應用程序,並從數據庫中讀取信息,結構如下:
"user" : {
"-KcNmMmqbSvmVXx2vn4A" : {
"email" : "firebase@firebase.com",
"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
。 我收到一條錯誤說明:
未捕獲(承諾)TypeError:無法讀取null的屬性'session_count'
已經定義了uid
,因此訪問用戶信息時不應該有任何問題。
任何指針都會受到大力贊賞!
以下對我有用:
//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
,但嘗試訪問可能導致您獲得的錯誤的users
。 確保使用正確的ref
。
Vivek是對的,我沒有使用過user
,也會導致錯誤,但主要問題是讀取代碼駐留在一個傳遞給它的database
,分配給firebase.database()
。 將代碼更改為此工作正常:
database.ref('/user/' + uid).once('value').then(function(snapshot) {
var sessionCount = snapshot.val().session_count;
});
歡呼為指針!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.