Я пытаюсь добавить всех пользователей в список, которые находятся на определенном расстоянии от местоположения пользователя. Я успешно получил текущее местоположение пользователя и сохраняю его в своей базе данных с помощью geofire. Я знаю, что должен использовать geofire для запроса результатов, но я не уверен, как добавить пользователей в мой список. Я считаю, что это делается в методе onKeyEntered, но я не уверен.
private void addLocationToDB()
{
database = FirebaseDatabase.getInstance().getReference("Leaderboard").child(userID);
geoFire = new GeoFire(database);
geoFire.setLocation("Location", new GeoLocation(latitude, longitude), new GeoFire.CompletionListener()
{
@Override
public void onComplete(String key, DatabaseError error)
{
if(error != null)
{
Log.d(TAG, "Problem storing users location - onComplete: " + error.getMessage());
}
else
{
getListNearbyUsers();
}
}
});
}
private void getListNearbyUsers()
{
geoQuery = geoFire.queryAtLocation(new GeoLocation(latitude, longitude), 1);
geoQuery.addGeoQueryEventListener(new GeoQueryEventListener()
{
@Override
public void onKeyEntered(String key, GeoLocation location)
{
nearbyUsers.add(key);
}
@Override
public void onKeyExited(String key)
{
}
@Override
public void onKeyMoved(String key, GeoLocation location)
{
}
@Override
public void onGeoQueryReady()
{
}
@Override
public void onGeoQueryError(DatabaseError error)
{
}
});
}