Firestore SnapshotChanges - 侦听新文档

Firestore SnapshotChanges - Listening for New Document

我正在使用 Firestore 创建实时滚动分页服务。我计划通过将最多 10 个实时文档加载到将显示在屏幕上的数组来编写它。当调用loadMore()函数时,使用startAfter函数再加载10个non-realtime文档等。我从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 实时找到全新的对象?

旁注: 我可能完全错误地接近分页,但我相信这是完成任务的负责任的方式(也就是说,如果可以这样做的话)。

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

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

另请参阅:Firestore query by date range