“不能使用多个queryOrderedBy调用!”在Firebase?

时间:2016-05-30 09:31:00

标签: firebase firebase-realtime-database

我有一个iOS Swift项目正在运行PHP后端。该应用获取用户位置(lng& lat),发布到API(后端),并接收数据。数据是用户位置附近的位置列表。

现在,我转到Firebase。数据结构如下图所示:

Firebase data structure

而且,我尝试从Firebase获取数据的代码

让radius:Double = 0.7

    let lng_min = lng - radius/abs(cos(deg2rad(lat))*69)
    let lng_max = lng + radius/abs(cos(deg2rad(lat))*69)

    let lat_min = lat - (radius/69)
    let lat_max = lat + (radius/69)


    ref = FIRDatabase.database().reference()
    ref.child("v1")
        .queryOrderedByChild("lng")
        .queryStartingAtValue(lng_min)
        .queryEndingAtValue(lng_max)
        .queryOrderedByChild("lat")
        .queryStartingAtValue(lat_min)
        .queryEndingAtValue(lat_max)
        .observeEventType(.Value, withBlock: { snapshot in
            print(snapshot.childrenCount)
        })

应用程序因错误运行而崩溃:无法使用多个queryOrderedBy调用!

如何查询Firebase,如下面的SQL查询:

SELECT lat, lng FROM `table`
WHERE (lng BETWEEN lng_min AND lng_max) //~> lng_min <= lng <= lng_max
AND (lat BETWEEN lat_min AND lat_max)

先谢谢!

0 个答案:

没有答案