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
的新手,我在这个问题上纠缠了好几个小时。任何帮助都将不胜感激。非常感谢