2016-02-12 53 views
1

嗨,我已經嘗試了很多方法來獲取它,但我迷路了。我無法訪問從firebase檢索到的JavaScript對象的值

這是我的函數:

var ref = new Firebase("https://<my-url>.firebaseio.com/"); 
    var ref2 = ref.orderByChild("matricula").equalTo(matricula); 
    var ref3 = ref2.on("value", function(snapshot){ 

     console.log(snapshot.numChildren()); 
     console.log(snapshot.val()); 
     } 

並取回了OBJET是:

Object {-KACGpGoGlVbgbHM4ibI: Object} 
-KACGpGoGlVbgbHM4ibI: Object 
carrera: "LAMX54" 
comentarios: " " 
curp: "rffgr4445454445" 
matricula: "006843" 
nombre: "JOSE GERARDO LOPEZ VILLARREAL" 
postulado: "no" 
tetra: "7" 
__proto__: Object 
__proto__: Object 

好吧,當我試圖讓snapshot.val()卡雷拉例如響應是「未定義「,即使當我嘗試獲取snapshot.key()時,響應是」null「,我怎麼才能獲得Object中的值?,在此先感謝!!!!!

回答

0

執行查詢時,可能有許多子節點與條件匹配。因此,您的value事件將由一組子節點觸發。即使只有一個孩子,它仍然會收藏。

爲了解決這個問題,就需要遍歷所有的孩子:

var ref = new Firebase("https://<my-url>.firebaseio.com/"); 
var ref2 = ref.orderByChild("matricula").equalTo(matricula); 
var ref3 = ref2.on("value", function(parent){ 
    console.log(parent.numChildren()); 
    console.log(parent.val()); 
    parent.forEach(function(snapshot) { 
     console.log(snapshot.val().carrera); 
    }); 
}); 
+0

非常感謝,它的工作完美! –

+0

好聽。如果我的回答很有幫助,可以通過按下左側的向上箭頭來使其生效。如果它回答了您的問題,請點擊複選標記接受它。 –

+0

非常感謝,我正在學習angular和firebase,其實我有一個新帖子,我認爲這個更復雜一點:(如果你能檢查出來,它會很棒!):http://stackoverflow.com/問題/ 35562167 /動畫 - 不 - 不工作,有棱角 –