【发布时间】:2019-05-12 07:34:51
【问题描述】:
我正在查询 Firestore 集合并成功检索结果。但是,我正在使用一个可排序的角度插件,它需要一个数组来排序。
我遇到的问题是项目被推入数组,但是当新项目进入时我找不到正确的位置来清除数组。如果不清除数组,返回的结果开始在数组中重复。
是否有人可以帮助重构下面的代码,以便我可以成功地将集合结果推送到数组中并在正确的位置清除它?
...
itemsArray = []
...
getData(){
this.issueCollection = this.afs.collection<any>(`users/${user}/projects/${project}/issues`, ref => {
return ref.orderBy('order');
});
this.issues = this.issueCollection.snapshotChanges().pipe(
map(actions => actions.map(a => {
const data = a.payload.doc.data();
const id = a.payload.doc.id;
this.itemsArray.push({ id, ...data });
return { id, ...data };
}))
);
}
HTML - 我如何需要 HTML 来显示结果
<ul>
<li *ngFor="let issue of itemsArr">
{{ issue.issueName }}
</li>
</ul>
更新 - 这似乎有效
getData(){
this.issueCollection = this.afs.collection<any[]>(`users/${user}/projects/${project}/issues`, ref => {
return ref.orderBy('issue_order');
});
this.issues = this.issueCollection.snapshotChanges().pipe(
map(actions => {
this.itemsArr = [];
return actions.map(a => {
const data = a.payload.doc.data();
const id = a.payload.doc.id;
this.itemsArr.push({ id, ...data });
return { id, ...data };
});
}))
}
【问题讨论】:
标签: angular google-cloud-firestore angularfire5