Firestore作为后端。我已经成功地通过使用简单的基本方法来解决问题。但是,我想了解如何确定对初始订阅后返回的项目列表所做的更改。
我最终要做的是: -减少每次阅读的文件数量 -为项目列表制作动画(进入动画,退出动画,更改动画)
在下面的示例中,我具有基本的crud方法以及初始订阅:
posts:post [] = [];
constructor(private db: AngularFirestore){}
ngOnInit(){
//The initial subscription to the posts
this.db.collection("Posts").valuechanges().subscribe( _posts => {
this.posts = _posts;
});
async addItem(_post:post)
{
_post.id = this.db.createId();
await this.db.collection("Posts").doc(_post.id).set(_post);
}
async update(_post:post)
{
await this.db.collection("Posts").doc(_post.id).update(_post);
}
delete (_post:post)
{
await this.db.collection("Posts").doc(_post.id).delete();
}
通过上述方法,我正在订阅Posts集合中的文档。最初,我收到Post类型的错误,并且每当添加,更新或删除另一个项目时,我就会收到Post类型的更新数组。
如何区分该项目发生了什么,以便可以对更改进行动画处理(即,对项目的输入进行动画处理,等等)?
如果您可以显示示例代码,这真的对我有帮助吗?
谢谢
答案 0 :(得分:0)
可观察到的valueChanges
仅公开文档中的实际数据。它没有关于文档的其他元数据,也没有更改的类型。
如果您需要更多信息,请改用documentChanges
。该操作公开了DocumentChangeAction
个对象流,其中除其他外还包含一个type
属性DocumentChangeType
。