我正在使用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实时找到全新的对象?
旁注: 我可能会以完全错误的方式进行分页,但是我相信这是完成任务的一种负责任的方式(也就是说,如果可以通过这种方式完成)。
答案 0 :(得分:0)
Firestore对“新”文档没有任何意义。听起来您应该在每个记录了创建时间的文档中存储一个时间戳。然后,您可以在范围过滤器中使用此时间戳,以查询定义中“新的”文档。
如果您对“新”的定义是大于先前查询中看到的最大时间戳的任何文档,则只需在查询中使用该时间戳值即可。然后,您可以收听该查询的结果以实时获取任何新文档。