Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.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 将数据推入数组不起作用_Javascript_Arrays_Firebase - Fatal编程技术网

Javascript 将数据推入数组不起作用

Javascript 将数据推入数组不起作用,javascript,arrays,firebase,Javascript,Arrays,Firebase,我试图将信息推送到一个数组中,但由于某些原因,有些事情进展不顺利。当我尝试获取我的数组businessList的长度时,结果将是0,而应该是3。这是阵列在控制台中的外观: 我知道这不是控制台中数组的外观。在我的快照功能中,推送似乎不起作用。我正在使用以下代码: var userId = firebase.auth().currentUser.uid; var businessesRef = firebase.database().ref("/users/" + userId + "/busin

我试图将信息推送到一个数组中,但由于某些原因,有些事情进展不顺利。当我尝试获取我的数组
businessList
的长度时,结果将是0,而应该是3。这是阵列在控制台中的外观:

我知道这不是控制台中数组的外观。在我的快照功能中,推送似乎不起作用。我正在使用以下代码:

var userId = firebase.auth().currentUser.uid;
var businessesRef = firebase.database().ref("/users/" + userId + "/businesses");

businessesRef.once("value").then(function(snapshot) {

  var businessList = [];

  snapshot.forEach(function(childSnapshot) {

    // key will be "ada" the first time and "alan" the second time
    var key = childSnapshot.key;
    var getListOfBusinesses = firebase.database().ref('/businesses/' + key + "/info");

    getListOfBusinesses.once('value').then(function(snapshot) {
      var name = snapshot.val().name;
      var contact = snapshot.val().contact;
      var pic = snapshot.val().pic;

      $( "#businesses" ).append( '\
        <div class="business">\
          <div class="business-img"><img class="profilepic-m" src="' + pic + '" /></div>\
          <div class="business-arrow"></div>\
          <div class="business-text">\
            ' + name + '<br/>\
            <span class="sidebar-sub">' + contact + '</span>\
          </div>\
        </div>'
      );
      businessList.push(name); 
    });
  });
  console.log(businessList);   
});
var userId=firebase.auth().currentUser.uid;
var businessref=firebase.database().ref(“/users/”+userId+“/businesss”);
businessref.one(“值”)。然后(函数(快照){
var businessList=[];
snapshot.forEach(函数(childSnapshot){
//第一次是“ada”,第二次是“alan”
var key=childSnapshot.key;
var getListofBusiness=firebase.database().ref('/businesss/'+key+“/info”);
GetListofBusiness.once('value')。然后(函数(快照){
var name=snapshot.val().name;
var contact=snapshot.val().contact;
var pic=snapshot.val().pic;
$(“#业务”)。追加('\
\
\
\
\
“+name+”
\ “+联系人+”\ \ ' ); businessList.push(名称); }); }); console.log(businessList); });
我猜您在第一个变量顶部定义的businessList变量。然后,当您尝试使用.push时,回调不在范围内。作为一个测试,你可以将定义移动到全局范围,看看是否有效。我不会使用'name'作为变量。。。我不确定我是否看到了问题。控制台告诉您有一个包含3项的数组“[]”,分别位于位置0、1和2,并且原型对象是“数组”。你期待看到什么?@Korgrue好话:)@James我想是这样的。当我在控制台中右键单击并选择“存储为全局变量”时,它会在控制台中为我提供正确的数组。但我不知道怎么做。