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我想是这样的。当我在控制台中右键单击并选择“存储为全局变量”时,它会在控制台中为我提供正确的数组。但我不知道怎么做。