2017-03-02 19 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; 

     }); 
相关问题