Firestore SnapshotChanges-监听新文档

时间:2020-09-22 16:21:41

标签: angular firebase google-cloud-firestore angularfire

我正在使用Firestore创建实时滚动分页服务。我打算通过将10个实时文档的限制加载到将在屏幕上显示的数组来编写它。调用loadMore()函数时,请使用startAfter函数加载另外10个非实时文档,等等。我从Firebase's Youtube Channel

那里得到了这个想法。

想法...问题

一旦我加载了一些实时文档,我想实时收听 new 文档,添加或更新数组中的文档。 collectionRef.snapshotChanges()发出DocumentChangeAction[]。数组中的单个对象如下所示:

{
   doc: n {Df: e, E_: t, kf: n, Mf: false, Of: false, …}
   newIndex: 0
   oldIndex: -1
   type: "added"
}

它表示对象经历的最后一个事件是added。很好,但是没有指出对象何时为not-seen-in-this-query-before.-aka,-just-added-and-newly-loaded

问题 有谁知道如何通过Firestore实时找到全新的对象?

旁注: 我可能会以完全错误的方式进行分页,但是我相信这是完成任务的一种负责任的方式(也就是说,如果可以通过这种方式完成)。

1 个答案:

答案 0 :(得分:0)

Firestore对“新”文档没有任何意义。听起来您应该在每个记录了创建时间的文档中存储一个时间戳。然后,您可以在范围过滤器中使用此时间戳,以查询定义中“新的”文档。

如果您对“新”的定义是大于先前查询中看到的最大时间戳的任何文档,则只需在查询中使用该时间戳值即可。然后,您可以收听该查询的结果以实时获取任何新文档。

另请参阅:Firestore query by date range