通过分页进行Firestore查询-Swift

时间:2020-05-09 18:17:56

标签: jquery swift firebase google-cloud-firestore pagination

此代码无法一起使用。我必须查询:.whereField("Privacy", isEqualTo: "Public")或:

     let myQuery: Query
        if lastDocument == nil {
            myQuery = firestoreRef.order(by: "Date", descending: false).limit(to: 8)
        } else {
            myQuery = firestoreRef.start(afterDocument: lastDocument).limit(to: 5) } 

这不能让我一起查询它们,而且我不明白为什么,是否有解决方法?我基本上是对我的数据进行分页,以便在用户到达屏幕底部时调用此函数。如果此函数之前运行过一次(它在“ ViewDidLoad”中),则它将获取最后一个文档。因此,我的下一个查询将在“ lastDocument”之后开始。但是,最主要的是,它不允许我同时查询这两个^^^短语。

var lastDocument: Documentsnapshot!



  func loadPosts () {
        let firestoreRef = Firestore.firestore().collection("Posts")
            .whereField("Date", isGreaterThanOrEqualTo: Date() - 10800)
            .whereField("Privacy", isEqualTo: "Public")

        fetchingmore = true
        let myQuery: Query
        if lastDocument == nil {
            myQuery = firestoreRef.order(by: "Date", descending: false).limit(to: 8)
        } else {
            myQuery = firestoreRef.start(afterDocument: lastDocument).limit(to: 5) }

            myQuery.getDocuments { (snapshot, error) in
       .
       .
       .
       etc... }

1 个答案:

答案 0 :(得分:1)

我知道了,这是因为我使用的是.getDocuments调用而不是.addsnapshotListener调用。但是,如果有人知道我如何在保持.getDocuments通话的同时完成相同的事情,那我就是开放的耳朵!