【发布时间】:2015-11-06 20:56:41
【问题描述】:
我有一个看起来像这样的 Firebase 调用,
ref.child(`floorPosts/${this.props.floorName}`)
.orderByChild('numberOfLikes')
.limitToLast(15)
.once('value', (snapshot) => {
var topPosts = [];
snapshot.forEach((childSnapshot) => {
var post = childSnapshot.val();
post.key = childSnapshot.key();
topPosts.unshift(post);
});
this.lastPostKeyTop = topPosts[topPosts.length - 1].key;
this.setState({
topPosts,
isLoading: false
});
});
现在我要做的是,当用户滚动到页面底部时,我会调用此函数。
ref.child(`floorPosts/${this.props.floorName}`)
.orderByChild('numberOfLikes')
.startAt(null, this.lastPostKeyTop)
.limitToLast(15)
.once('value', (snapshot) => {
var topPosts = [];
snapshot.forEach((childSnapshot) => {
var post = childSnapshot.val();
post.key = childSnapshot.key();
topPosts.unshift(post);
});
this.setState({
topPosts: this.state.topPosts.concat(topPosts),
isLoading: false,
});
});
但是,它会连接与最初相同的前 15 个结果。 .startAt 接受第二个参数,它(我相信)是从 firebase 获取的最后一个项目的键。但是,这似乎不适用于我的情况。我有预感这与snapshot.forEach 代码有关。
【问题讨论】:
标签: firebase firebase-realtime-database