2017-03-02 101 views
0

我想從我的火力數據庫中獲取一些數據,但我得到的值爲「undefined」。火力地堡數據是「不確定的」,當它是不是

這是我如何將數據保存到數據庫中:

var database = firebase.database(); 

     database.ref().push({ 
     mainArray: mainArray, 
     secondArray: secondArray, 
     listname: listName, 
     mainLanguage: mainLanguage, 
     secondLanguage: secondLanguage, 

    }, function(error) { 
    if (error){ 

    stopLoader(); 

    showSnackbar("An error has occured! Please try again later."); 
} 

這是我如何讀取數據,但LISTNAME的值爲 「undefined」:

var database = firebase.database().ref().child('codes'); 
    var codeInput = document.getElementById('mainSearch'); 

    database.on('value', function(snapshot) { 
      if (!snapshot.hasChild(codeInput.value)) { 

       codeInput.value = ""; 
       showSnackbar("A list with this code does not exist!<br><br>Please try another one.") 
      } 
      else { 

       var data = snapshot.val(); 
       var listname = data.listname; 


       console.log(listname); 



      } 
     }); 

這是我從數據庫中得到的值:

This is the value I get from the database

這是數據是如何在數據庫中的結構化:

This is how the data is structured in the database:

+0

你能設置一個jsbin來重現這個問題嗎? –

+0

只需似乎缺少'VAR數據= snapshot.val()[codeInput]'。 'snapshot.val()'將返回整個'codes'對象 – Phil

+0

@Phil我可以retrive裏面的一切代碼使用'VAR數據= snapshot.val()對象;',但我想檢索每個單個項目,使一個變量。 – Magnus

回答

0

我改變了我的代碼,這和現在的作品完美。問題是我試圖從錯誤的孩子那裏獲得價值。感謝您的幫助和耐心!

var database = firebase.database().ref().child('codes'); 
var codeInput = document.getElementById('mainSearch'); 


database.child(codeInput).on('value', function(snap) { 

      var data = snap.val(); 

      var listName = data.listname; 
      var mainLanguage = data.mainLanguage; 
      var secondLanguage = data.secondLanguage; 
      var mainArray = data.mainArray; 
      var secondArray = data.secondArray; 

     });