【问题标题】:Determining what has been added/deleted/changed in a Firestore list确定 Firestore 列表中已添加/删除/更改的内容
【发布时间】:2018-12-03 02:01:29
【问题描述】:

Firestore 作为后端。我已经设法通过简单地使用基本的 crud 方法来解决问题。但是,我想了解如何确定对初始订阅后返回的项目列表的更改。

我最终想要做的是: - 减少每次阅读的文件数量 - 为项目列表设置动画(进入动画、退出动画、更改动画)

在以下示例中,我有基本的 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 类型的更新数组。

我如何区分项目发生了什么,以便我可以为更改设置动画(即为项目的条目设置动画等...)?

如果你能显示一个示例代码真的会帮助我吗?

谢谢

【问题讨论】:

    标签: javascript angular google-cloud-firestore angularfire2


    【解决方案1】:

    valueChanges observable 仅公开文档中的实际数据。它没有关于文档的其他元数据,也没有变化的类型。

    如果您需要更多信息,请收听 documentChanges。这会公开DocumentChangeAction 对象流,其中包含type 属性,即DocumentChangeType

    https://github.com/angular/angularfire2/blob/master/docs/firestore/documents.md#the-documentchangeaction-type

    【讨论】:

      猜你喜欢
      • 2016-08-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-15
      • 2020-07-05
      • 1970-01-01
      • 1970-01-01
      • 2019-04-24
      相关资源
      最近更新 更多