Hey Bosch,
Glad you are a fan of GeoFire and Firebase! I'm not entirely 100% sure what you want to do. If I understand correctly, you want to take a set of GeoFire locations and get a list of those locations which are within a certain radius of another location. But you don't want this to update in realtime. Instead, you just want to do this once. You can definitely accomplish this by making a GeoQuery, keeping a list of every location which enters that query, and then turning off the query once the ready event has fired. It would look like this:
// Create a new GeoFire reference
var geoFire = new GeoFire(ref);
// Define our query criteria
var geoQuery = geoFire.query({
center: [lat, lon],
radius: 0.3
});
// Keep track of the locations which meet our criteria
$scope.filteredLocations = [];
// Add every key within our query to our locations list
geoQuery.on("key_entered", function(key, location, distance) {
filteredLocations.push(key);
});
// Cancel the query once all data has loaded
geoQuery.on("ready", function() {
geoQuery.cancel();
});
You now have the list of locations you want in $scope.filteredLocations. If you update the query (e.g. make the radius larger), just make a new GeoQuery and repeat the code above. I'm not sure exactly why you don't want the query to update in realtime, but if you did, you can just add a key_exited event listener to remove those keys from $scope.filteredLocations. That way, you can also update the query criteria on your existing GeoQuery without having to create a new GeoQuery.
Once you have $scope.filteredLocations, you can use the keys it contains to access data for locations in, say, a /locations/ node somewhere in your Firebase. That /locations/ node would have children who keys are the same keys you used in GeoFire. So you could look up the location data by doing something like ref.child("locations").child(key_from_filtered_locations).once("value").
I'm not sure if you are using this or not, but Mike Pugh made an Angular service which wraps our GeoFire library. It's called
AngularGeoFire and you should check it out if you aren't already using it.
Finally, if you are using Firebase and Angular, you should check out
AngularFire. It should play nicely with AngularGeoFire.
Good luck!
Jacob