Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/377.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Firebase数据为;“未定义”;当它不是_Javascript_Firebase_Firebase Realtime Database - Fatal编程技术网

Javascript Firebase数据为;“未定义”;当它不是

Javascript Firebase数据为;“未定义”;当它不是,javascript,firebase,firebase-realtime-database,Javascript,Firebase,Firebase Realtime Database,我试图从firebase数据库中检索一些数据,但得到的值为“未定义” 这是我将数据保存到数据库的方式: var database = firebase.database(); database.ref().push({ mainArray: mainArray, secondArray: secondArray, listname: listName, mainLanguage: mainLanguage,

我试图从firebase数据库中检索一些数据,但得到的值为“未定义”

这是我将数据保存到数据库的方式:

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.");
}
 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);



            }
        });
这是我读取数据的方式,但listname的值是“未定义”:

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.");
}
 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);



            }
        });
var-database=firebase.database().ref().child('code');
var codeInput=document.getElementById('mainSearch');
数据库.on('value',函数(快照){
if(!snapshot.hasChild(codeInput.value)){
codeInput.value=“”;
showSnackbar(“包含此代码的列表不存在!

请尝试另一个。”) } 否则{ var data=snapshot.val(); var listname=data.listname; console.log(listname); } });
这是我从数据库获得的值:

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.");
}
 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);



            }
        });

这是数据库中数据的结构:

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.");
}
 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);



            }
        });

我把代码改成了这个,现在它工作得很好。问题是我试图从错误的孩子那里得到价值。谢谢你的帮助和耐心

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;

        }); 

您可以设置一个jsbin来重现这个问题吗?您只是看起来缺少
var data=snapshot.val()[codeInput]
snapshot.val()
将返回整个
code
object@Phil我可以使用
var data=snapshot.val()检索codes对象内部的所有内容
,但我想检索每一项并从中生成一个变量。@FrankvanPuffelen我会尝试这样做。@Magnus除了Phil的注释外,您还保存到“/”(数据库的根目录),但从/code检索/