我试图通过隐私价值(即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)
}
})