像facebook一样,我的应用发布了人们可以发表评论的帖子。如果评论变得很大,我希望对评论进行分页。我使用下面的简单代码来测试该功能。基本上,当用户点击测试按钮时,会打印出更多注释。我的所有评论条目都通过childByAutoId保存在firebase中。我在网上看到我可以使用autoID按时间顺序排序,因为它们像时间戳一样生成。附件是我的firebase条目
@IBAction func testBtnPressed(sender: AnyObject) {
var pageSize = 3
var query = DataService.ds.REF_COMMENT.child(self.post.postKey).queryOrderedByKey()
if startKey != nil {
query = query.queryStartingAtValue(startKey)
pageSize += 1
}
query.queryLimitedToFirst(UInt(pageSize)).observeSingleEventOfType(.Value) { (snapshot: FIRDataSnapshot) in
if snapshot.exists() {
if let comments = snapshot.value as? Dictionary<String, AnyObject> {
for comment in comments {
let commentKey = comment.0
let commentDict = comment.1
print("commentDict \(commentDict)")
self.startKey = commentKey
}
}
} else {
// No comments
}
}
}
如照片所示,我从1到16有几条评论(从图像顶部到底部是评论1,评论2,评论3,......等)这是在输入时的顺序firebase也。
所以我期待的是当我点击测试按钮时,我将从commentDict打印出来的东西按照
的顺序评论1,评论2,评论3.
然后当我再次按下时,我会得到
评论3,评论4,评论5
然而,在第一次按下我实际上,
评论2,评论1,评论3.
在第二次按下时,我正在
评论5,评论4,评论3
之后的每一次媒体都是
评论5,评论4,评论3
AutoId没有做它想做的事吗?
谢谢,