4
我试图将数据从firebase复制到使用角度2的数组。但我无法将数据推入数组。如何将firebaselistobservable中的数据存储到数组中?
下面的代码:
变量:
uid: string = '';
agencyItems: FirebaseListObservable<any[]>;
trackerItems: FirebaseListObservable<any[]>;
agencyID: any[] = [];
的getData()
this.af.auth.subscribe(auth => {
if (auth) {
this.uid = auth.auth.uid;
}
});
this.getAgencyData();
console.log("AgentID: ",this.agencyID);
console.log("Array Length = ",this.agencyID.length); //PROBLEM HERE: Array agencyID is still 0.
this.getTrackerData();
getAgencyData():
console.log("Fetching agency data");
this.agencyItems = this.af.database.list('/agencies/',{preserveSnapshot:true});
this.agencyItems.subscribe(snapshots => {
snapshots.forEach(snapshot => {
console.log(snapshot.val()._id);
this.agencyID.push(snapshot.val()._id);
});
});
getTrackerData():
for (let i = 0; i < this.agencyID.length; i++)
{
console.log("Fetching Tracker data");
this.trackerItems = this.af.database.list('/tracker/' + this.agencyID[i]);
this.trackerItems.subscribe(trackerItems => trackerItems.forEach(Titem =>
console.log("Tracker name: " + Titem.name),
));
}
这里是调试控制台截图:
因为我是一个新手,以网页编程一些代码可能看起来完全没有必要。
我在做什么错在这段代码?我该如何执行相同的操作。
那么,如何等到数据完全取? –
数据将在'.subscribe()'块的末尾被完全提取。但是,如果不知道您想要对阵列长度或数据本身做什么,就很难告诉您最佳的方法或位置。 –
我只是想将所有'到达'数据存储到数组中。 –