追踪馆藏变更

时间:2019-10-15 16:16:53

标签: firebase google-cloud-firestore angularfire2

在文档中,我们看到了。

  

stateChanges()

     

是什么? -返回最近的Observable   更改为DocumentChangeAction []。

在代码中我们看到 https://github.com/angular/angularfire2/blob/fdf6c9bfeae37e9c781f0d24b590e23f7b658c0e/src/firestore/collection/collection.ts#L59

  

收听流中的最新更改。该方法返回   发生更改时,不会按查询顺序排序。   这使您可以构建自己的数据结构。

现实

this._store
        .collection(entity.path)
        .stateChanges().pipe(
           tap(x=>console.log(x))
        ).subscribe();

控制台说:

0: {type: "added", payload: {…}}
1: {type: "added", payload: {…}}
2: {type: "added", payload: {…}}
3: {type: "added", payload: {…}}
4: {type: "added", payload: {…}}
...

我们看到所有历史记录中的所有更改均已记录。

从我开始观察的那一刻起,有没有办法观察到变化?

是错误还是预期的行为?

1 个答案:

答案 0 :(得分:1)

这按预期工作。您的代码正在查询entity.path所标识的集合中的每个文档,因此可以期望在初始结果集中收到每个文档。如果您不希望集合中的所有文档,则需要使用一个“ where”子句过滤器来标识您想要的文档。如果您的兴趣是基于查询的时间,请考虑在每个文档中添加一个时间戳字段,以便可以在过滤器中使用该字段,该过滤器将仅向您提供在当前时间之后出现的文档。

相关问题