Firebase查询两个值

时间:2016-12-05 17:19:11

标签: ios swift firebase firebase-realtime-database

我正在尝试在没有GeoFire的情况下在Firebase中实施基于位置的查询(因为上次更新是在6个月之前似乎已弃用)

无论如何,我无法弄清楚这一点。

它没有解雇听众。 当它没有开始或结束时它起作用。

查询如下:(仅使用谷歌纵横测试)

// Testing, only doing longtude atm.
        geoFlamesFIRReference
            .queryStarting(atValue: coordinates!.longitude - radius, childKey: "longtitude")
            .queryEnding(atValue: coordinates!.longitude + radius, childKey: "longtitude")
            .queryLimited(toFirst: UInt(Constants.LIMIT_OF_FLAMES_ON_MAP))
            .observe(.value, with: { snapshot in
                print("New location?")
            })

然后我的一些数据的例子:

Firebase geo example not working

1 个答案:

答案 0 :(得分:1)

您使用错误的语法进行查询:

geoFlamesFIRReference
    .queryOrder(byChild: "longtitude")
    .queryStarting(atValue: coordinates!.longitude - radius)
    .queryEnding(atValue: coordinates!.longitude + radius)

请注意,如果您还希望按纬度筛选Firebase queries can only contain a single orderBy clause,则会遇到问题。

GeoFire使用geohashes来解决此限制。因此,如果您打算不使用该库,则必须阅读这些库。