Javascript AngularFirestore-不工作后限制和启动

Javascript AngularFirestore-不工作后限制和启动,javascript,angular,firebase,google-cloud-firestore,angularfire2,Javascript,Angular,Firebase,Google Cloud Firestore,Angularfire2,我正在尝试创建一个网页,其中AngularFireStore作为我的数据存储。为了实现无限滚动,我尝试使用AngularFireStore的limit和startAfter功能查询存储 由于某种原因,我无法使它工作。限制功能未按预期工作,因为它返回的值大于/小于实际限制,并且存在重复值 我搜索并尝试了几种方法(,)。但什么都不管用 以下是我尝试过的: crudService.ts: readNextPost(cursor){ return this.firestore.collectio

我正在尝试创建一个网页,其中
AngularFireStore
作为我的数据存储。为了实现无限滚动,我尝试使用
AngularFireStore
limit
startAfter
功能查询存储

由于某种原因,我无法使它工作。
限制
功能未按预期工作,因为它返回的值大于/小于实际限制,并且存在重复值

我搜索并尝试了几种方法(,)。但什么都不管用

以下是我尝试过的:

crudService.ts:

readNextPost(cursor){
    return this.firestore.collection('MyCollection',
                                      ref => ref.orderBy('date', 'desc')
                                                .startAfter(cursor)
                                                .limit(10)
                                                ).snapshotChanges();
  }
组件。ts

mapResponseToObject(data) {
  return {
    id: data.payload.doc.id,
    doc: data.payload.doc
  }
}

setLastPost(data) {
  this.lastFetchedPost = data[data.length - 1].doc;
}

fetchNextPosts() {
    this.crudService.readNextPost(this.lastFetchedPost).subscribe(data =>{
      let nextPost = data.map(this.mapResponseToObject)
      this.allPosts = [...this.allPosts, ...nextPost];
      this.setLastPost(nextPost);
    })
  }
readNextPost
返回的值小于
10
,尽管存储区中的值大于此值,并且有时返回的值大于
10
,这些值具有先前获取的值。 这会导致网页中出现重复数据

作为
AngularFireStore
Angular 10
的新手,我在这个问题上纠缠了好几个小时。任何帮助都将不胜感激。非常感谢