我使用JSQMessageViewController创建聊天应用程序。首先,我获取最后25条消息,然后当用户位于顶部时,我必须获取更多25条消息。我是通过以下方式完成的,但它首先返回25. queryEnding(atValue: self.threadIDs.first!)
无效。 self.threadIDs.first
包含正确的最后一条消息' threadId。
let messagesQuery = messageRef.queryEnding(atValue: self.threadIDs.first!).queryLimited(toFirst: 25) // in JSQMessagesLoadEarlierHeaderView
这就是我首先获取数据的方式
func observeMessages () {
let messagesQuery = messageRef.queryLimited(toLast: 25)
newMessageRefHandle = messagesQuery.observe(.childAdded, with: { [weak self] (snapshot) -> Void in
guard let weakSelf = self else { return }
let key = snapshot.key
weakSelf.threadIDs.append(key)
}
}