我试图为我的数据库中的帖子列表执行无限滚动功能。
我要做的第一件事是根据timestamp
加载最后10个帖子,我使用on
执行此操作,因为我想在帖子进来时加载帖子:
this.subscription = this.database.database.ref('/posts/'+this.userData.location)
.orderByChild('created')
.limitToLast(10);
this.subscription.on('child_added', (snapshot) => {
this.postFeed.push(snapshot.val());
});
我不认为这对于这个问题很重要,但我认为无论如何我都要添加它。
然后,使用Ionic和ion-infinite-scroll
我会发现用户是否已到达内容的底部并运行此功能:
doInfinite(event) {
this.startLimit += 10;
this.database.database.ref('/posts/'+this.userData.location)
.orderByChild('created')
.startAt(this.postFeed[this.postFeed.length-1].created)
.limitToLast(this.startLimit)
.once('value', (snapshot) => {
snapshot.forEach(item => {
this.postFeed.push(item.val());
return false;
})
});
}
所以我对此的希望是它按created
命令(所以它找到最新的帖子),从数组created
的最后一个元素开始(我也尝试过键但是没有& #39; t或者工作日期,然后将其限制为startLimit
,从10开始,每个无限滚动上升...
问题是,这似乎不起作用..它没有向postFeed
添加任何东西......我做错了什么?
感谢您的帮助!