Retrieving Keys From GeoFire within Radius in Swift

firebase, firebase-realtime-database, geofire, geolocation, swift

Solution

Figured it out

func geoFireQuery() {

        let circleQuery = geoFire.query(at: self.myLocation, withRadius: 0.5)

        _ = circleQuery!.observe(.keyEntered, with: { (key: String?, location: CLLocation?) in

        print (key!)

    })

    circleQuery?.observeReady({
        print("All initial data has been loaded and events have been fired!")

    })

}

this seems to be giving me what I need. Now to reference those keys to the other part of the FBDB. :)

Problem

I have the following Firebase Database JSON data structure: ``` { "Post List" : { "-KUlvg8mCEGfY5ZSKCou" : { "addedByUser" : "7llQbPdy2NV7aO337h7ap0qLOhC3", "content" : "Post1", "cost" : "$450", "duration" : "Daily", "latitude" : "25.0879721592719", "longitude" : "55.1487715855458", "number" : "01234567890", "timestamp" : "Posted on: Sun 23 Oct" } }, "Post Locations" : { "-KUlvg8mCEGfY5ZSKCou" : { ".priority" : "thrnwznh58", "g" : "thrnwznh58", "l" : [ 25.0879721592719, 55.1487715855458 ] } }, "User Locations" : { "7llQbPdy2NV7aO337h7ap0qLOhC3" : { ".priority" : "thrnwypqu9", "g" : "thrnwypqu9", "l" : [ 25.0829547120321, 55.1505315855337 ] } } } ``` I am looking to have a GeoFire query which will return all the keys [FIRAutoID's] within a radius of 1KM, for e.g. of "User Locations" these Posts are static and once the user location is set it will also be fixed. From the radius query result I am expecting to return "-KUlvg8mCEGfY5ZSKCou" so I can then make a reference the Post Details. Hope this makes sense. Many thanks, D. Cant find much online about GeoFire... looks like its still in the initial stages?...

Original source