当我的收藏超过20个文档时,我遇到了加载非常慢的性能问题。
这是我的应用结构
我收到FeedComponent
收集Post
订阅Firestore集合
getAllPost(type: string){
return this.afs.collection(`posts`, ref =>
ref.orderBy("created", "desc")
.where("type", "==", type))
.snapshotChanges(["added"]).map(actions => {
return actions.map(a => {
//console.log(a)
const data = a.payload.doc.data();
const id = a.payload.doc.id;
return { id, ...data };
});
});
}
然后,来自Firestore的每个Post
创建一个PostComponent
<div *ngFor="let post of posts | async">
<post *ngIf="post" [userId]="userId" [postId]="post.id" [author]="post.user" [created]="post.created" [postContent]="post.post" [postPicture]="post.picturePath" [firstName]="post.first_name" [lastName]="post.last_name"></post>
</div>
然后这个PostComponent
拥有自己的Observable集来检索有效负载的特定信息,因此它会生成对Firestore的额外调用
我的帖子号码超过20后,该应用程序变得超级马虎。 我想我的Observable太多了。
什么是更好的策略?