我想问一个与 firestore 查询 swift 相关的问题。我的firestore结构如下:

swift - Firestore 查询 Swift 4 的范围-LMLPHP

目前我开发了一个搜索系统,用户可以在其中过滤 minmax 人每个 team 。下面是对 .collection("team") 的查询

Firestore.firestore().collection("team")
.whereField("min", isGreaterThanOrEqualTo : filterMin)
.whereField("max", isLessThanOrEqualTo : filterMax)

预期:如果用户放置 filterMin = 0 和 filterMax = 600 将显示 team1team2 的数据,如果用户放置 filterMin = 3 和 filterMax = 500,则仅显示 team2 的数据。

但问题是如果我使用上面的代码,我会收到如下错误



我已经阅读了文档,但似乎对我帮助不大。我仍然是快速开发和firebase的新手。谢谢你帮助我。

最佳答案

Cloud Firestore 目前不允许您执行多个不等式过滤器。解决方法可能是运行第一个 .whereField 查询,然后在获得文档后,为第二个查询过滤数组。

    Firestore.firestore().collection("team")
    .whereField("min", isGreaterThanOrEqualTo : filterMin)
        .getDocuments { (snapshot, error) in
            if let snapshot = snapshot {
                for document in snapshot.documents {
                    let data = document.data()

                    //parse your data into an array of teams
                }
            }

            let filteredTeams = teams.filter { $0.max < filterMax }
    }

关于swift - Firestore 查询 Swift 4 的范围,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50122084/

10-11 00:58
查看更多