簡體   English   中英

Firebase無法使用“快照”訪問數據

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM