Я попытался заполнить окно реселлера с помощью геоквери, и я установил радиус геоквезда только 0,1, чтобы я мог получить только 1 элемент из базы данных (и он работает).
Но почему были напечатаны все идентификаторы изациклен на основе элемента, который я нашел в Firebase.
Просмотреть мой Firebase JSON
Просмотреть конечный результат в эмуляторе
reference = FirebaseDatabase.getInstance().getReference("Users").child("Location");
GeoFire geoFire = new GeoFire(reference);
double my_lat = -6.2629133;
double my_lon = 106.8355483;
GeoQuery geoQuery = geoFire.queryAtLocation(new GeoLocation(my_lat, my_lon), 0.1);
geoQuery.addGeoQueryEventListener(new GeoQueryEventListener() {
@Override
public void onKeyEntered(String key, GeoLocation location) {
Query locationDataQuery = FirebaseDatabase.getInstance().getReference("Users").child("Cleaner");
locationDataQuery.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
if(dataSnapshot.exists()){
for(DataSnapshot dataSnapshot1: dataSnapshot.getChildren()){
Sitter p = dataSnapshot1.getValue(Sitter.class);
list.add(p);
}
sitterAdapter = new SitterAdapter(MainActivity.this, list);
sitter_place.setAdapter(sitterAdapter);
Toast.makeText(getApplicationContext(), "Data Ada", Toast.LENGTH_SHORT).show();
}
else {
Toast.makeText(getApplicationContext(), "Data Kosong", Toast.LENGTH_SHORT).show();
}
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
}
}
Я ожидаю, что будет выведен только 1 элемент, который я нашел в базе данных огней, исходя из радиуса, который я установил для своего геоквери.