Почему вы используете определенную переменную, когда ваша наблюдаемая возвращает уже ваш массив?
issueData() {
this.albumCollection = this.afs.collection<any>(`album/albumID}/issues`, ref => {
return ref.orderBy('order');
});
this.issues = this.albumCollection.snapshotChanges().pipe(
map(actions => actions.map(a => {
const data = a.payload.doc.data();
const id = a.payload.doc.id;
return { id, ...data };
}))
);
}
Затем в вашем шаблоне вы подписываетесь на свою наблюдаемую для доступа к данным:
<div *ngFor="let issue of issues | async">{{issue | json}}</div>
Если вам действительно нужна переменная для кэширования вашего результата, вы можете использовать оператор касания (не нужно вставлять данные в массив):
this.myArr = [];
issueData() {
this.albumCollection = this.afs.collection<any>(`album/albumID}/issues`, ref => {
return ref.orderBy('order');
});
this.issues = this.albumCollection.snapshotChanges().pipe(
map(actions => actions.map(a => {
const data = a.payload.doc.data();
const id = a.payload.doc.id;
return { id, ...data };
})),
tap(data => this.myArr = data)
);
}
Но не забывайте, что вам придетсяподписаться на наблюдаемую ленту this.myArr
, иначе она останется пустой.