如何按值

时间:2017-08-22 16:20:49

标签: swift firebase firebase-realtime-database geofire

我试图通过隐私价值(即if privacy == "public")进一步减少GeoFire返回的结果数量。我还没有找到任何关于此问题的好解决方案,并且没有看到GeoFire的Github页面上的任何此类内容。

我当前的解决方案采用GeoFire查询并迭代每次检查值。我担心这会很慢,坦率地说感觉不对。我应该采用更标准的方式进行此查询吗?

circleQuery?.observe(.keyEntered, with: { (key: String!, location: CLLocation!) in
    self.annotationLocationRef.child(key).observeSingleEvent(of: .value, with: { (locationSnapshot) in
        if !locationSnapshot.exists() { return }

        self.annotationRef.child(key).observeSingleEvent(of: .value, with: {(annotationSnapshot) in
            if !annotationSnapshot.exists() { return }

            let snapshotValue = annotationSnapshot.value as? NSDictionary
            let privacy = snapshotValue!["privacy"] as? Double

            if privacy == "public" {
                // do stuff
            }
        })
    }) { (error) in
        print(error.localizedDescription)
    }

})

0 个答案:

没有答案