0

this is how location is saved in firebase

I have inserted location using geofire in firebase from one of the activity in android studio now I want to retrieve all the location in single google map activity with marker. I have created map activity, but I don't know how to retrieve the location from the firebase .

Please help I am stuck in this. With some source code.

Here is my code for sending location to firebase

GeoFire geoFire = new 
GeoFire(databaseReference.child("Location").child(user.getUid()));
          geoFire.setLocation("location", new 
GeoLocation(location.getLatitude(), location.getLongitude()), new 
GeoFire.CompletionListener() {
              @Override
              public void onComplete(String key, DatabaseError error) {
                  if (error != null) {
                      Toast.makeText(gpdfuel.this, "There was an error 
saving the location to GeoFire: " + error, Toast.LENGTH_LONG).show();
                  } else {
                      Toast.makeText(gpdfuel.this, "Location saved on server 
successfully!", Toast.LENGTH_LONG).show();

                  }
              }
          });
KENdi
  • 7,576
  • 2
  • 16
  • 31
Parth Tiwari
  • 466
  • 8
  • 23

1 Answers1

0

you have to create a data reference first

 DatabaseReference ref = FirebaseDatabase.getInstance().getReference("/path/");

than geofire object

        GeoFire geoFire = new GeoFire(ref);

now retreive geo firelocation within particular range like this

 GeoQuery geoQuery = geoFire.queryAtLocation(new GeoLocation(lat, long), radius);
    geoQuery.addGeoQueryEventListener(new GeoQueryEventListener() {
        @Override
        public void onKeyEntered(String key, GeoLocation location) {
            Log.d(Const.TAG,String.format("Key %s entered the search area at [%f,%f]", key, location.latitude, location.longitude));
        }

        @Override
        public void onKeyExited(String key) {
            Log.d(Const.TAG,String.format("Key %s is no longer in the search area", key));
        }

        @Override
        public void onKeyMoved(String key, GeoLocation location) {
            Log.d(Const.TAG,String.format("Key %s moved within the search area to [%f,%f]", key, location.latitude, location.longitude));
        }

        @Override
        public void onGeoQueryReady() {
            Log.d(Const.TAG,"All initial data has been loaded and events have been fired!");
        }

        @Override
        public void onGeoQueryError(DatabaseError error) {
            Log.d(Const.TAG,"There was an error with this query: " + error);
        }
    });
saurabh dixit
  • 863
  • 6
  • 19