I am new to working with Firebase and its GeoFire location library. I am currently having some problems structuring my data.
At the moment, my db looks something like this:
users facebook:xxxxx displayName: xx firstName: xx lastName: xx location: g: xxxx l: 0: xxx 1: xxx facebook:yyyyy displayName: yy firstName: yy lastName: yy location: g: yyyy l: 0: yyy 1: yyy
I would like to request users who are next to my current user logging in. For this, I cannot figure out which path I should point out.
I'm currently doing this (but this does not work):
save current location
let root = Firebase(url: "myapp.firebaseio.com") let usersRoot = root.childByAppendingPath("users") geoFire = GeoFire(firebaseRef: usersRoot.childByAppendingPath(root.authData.uid)) geoFire.setLocation(currentLocation, forKey: "location") { (error) in if (error != nil) { print("An error occured: \(error)") } else { print("Saved location successfully!") } }
fetching other users next to
let geoFire = GeoFire(firebaseRef: Firebase(url: "myapp.firebaseio.com").childByAppendingPath("users")) let query = geoFire.queryAtLocation(currentLocation, withRadius: radius) query.observeEventType(GFEventTypeKeyEntered, withBlock: { (key: String!, location: CLLocation!) in print("+ + + + Key '\(key)' entered the search area and is at location '\(location)'") self.userCount++ self.refreshUI() })
UPDATE
save current location
let root = Firebase(url: "myapp.firebaseio.com") geoFire = GeoFire(firebaseRef: root.childByAppendingPath("locations")) geoFire.setLocation(currentLocation, forKey: root.authData.uid) { (error) in if (error != nil) { print("An error occured: \(error)") } else { print("Saved location successfully!") } }
fetching other users next to
let geoFire = GeoFire(firebaseRef: Firebase(url: "myapp.firebaseio.com").childByAppendingPath("locations")) let query = geoFire.queryAtLocation(currentLocation, withRadius: radius) query.observeEventType(GFEventTypeKeyEntered, withBlock: { (key: String!, location: CLLocation!) in print("+ + + + Key '\(key)' entered the search area and is at location '\(location)'") self.userCount++ self.refreshUI() })