【问题标题】:Firestore Querying with pagination- Swift使用分页进行 Firestore 查询 - Swift
【发布时间】:2020-08-25 08:01:11
【问题描述】:

此代码不能一起使用。我必须查询:.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... }

【问题讨论】:

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


    【解决方案1】:

    我想通了,这是因为我使用的是.getDocuments 调用而不是.addsnapshotListener 调用。但是,如果有人知道我如何在保持.getDocuments 通话的同时完成同样的事情,我很乐意接受!

    【讨论】:

    • 它也可能是您的索引。尝试查看 Firestore 索引
    猜你喜欢
    • 1970-01-01
    • 2018-04-23
    • 2019-11-14
    • 2019-02-11
    • 2021-12-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多