【问题标题】:Query and order previous snapshots from Firestore Database从 Firestore 数据库查询和排序以前的快照
【发布时间】:2018-08-16 18:33:13
【问题描述】:

我正在尝试为消息传递应用程序获取以前/较旧的消息。第一次提取是针对一批最新消息。但是当用户向上滚动时,我想获取以前的消息并对其进行排序。

func getOlderMessages () {

    if self.lastSnapshot == nil {return}

    let next = Firestore.firestore().collection("chats/\(self.chat.id!)/messages")

        .order(by: "timestamp", descending: false)
        .limit(to: 10)
        .start(afterDocument: self.lastSnapshot)

    next.getDocuments(completion: { (snapShot, error) in

        for doc in snapShot!.documents {
            let message = Message(doc.data())
            self.chat.messages.insert(message, at: 0)
        }

        self.tableView.reloadData()
        self.refreshControl.endRefreshing()

        guard let last = snapShot?.documents.last else { return }

        self.lastSnapshot = last
    })
}

更新:将下降设置为 TRUE 似乎可以解决问题...

【问题讨论】:

  • 有什么问题?

标签: ios firebase google-cloud-firestore


【解决方案1】:

我会查找query cursor。使用startAfterlimit 的组合,如文档中所示。要触发此加载行为,您还需要检测 scrollTop == scrollHeight 的时间,这是页面应该触发上一个消息查询的时间。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-06-17
    • 1970-01-01
    • 2019-09-03
    • 1970-01-01
    • 1970-01-01
    • 2018-11-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多