У меня есть этот итератор базы данных, который перебирает базу данных Firebase, получает все значения и отображает их в виде реселлера.Внутри цикла я добавляю условие if, которое проверяет фильтрацию всех значений с определенным условием ... Положительная часть работает очень хорошо. Интересно, как я могу получить исключение, когда ни один элемент не соответствует этому условию. Пока ничего не происходит.
mUsersDatabaseReference.addValueEventListener(new
ValueEventListener() {
@Override
public void onDataChange (DataSnapshot dataSnapshot){
int count = 0;
Iterator<DataSnapshot> items = dataSnapshot.getChildren().iterator();
while (items.hasNext()) {
DataSnapshot item = items.next();
//Define the names of the values to be picked
String theName;
String theImage;
String from;
String to;
String price;
String time;
String id;
if (item.child("DepartureLatitude").exists() && item.child("DestinationLongitude").getValue() != null) {
//Define the variables
theName = item.child("name").getValue().toString();
from = item.child("DepartureLocation").getValue().toString();
to = item.child("DestinationLocation").getValue().toString();
price = item.child("TripPrice").getValue().toString();
time = item.child("DepartureTime").getValue().toString();
theImage = item.child("DriverImage").getValue().toString();
String get = item.child("DriverImage").getRef().getParent().toString();
id = get.substring(get.lastIndexOf("/") + 1);
//Driver Depature
Double deplat = Double.valueOf(item.child("first").getValue().toString());
Double deplong = Double.valueOf(item.child("second").getValue().toString());
Double first = deplat * deplong;
//Driver destination
Double destlat = Double.valueOf(item.child("DestinationLatitude").getValue().toString());
Double destlong = Double.valueOf(item.child("DestinationLongitude").getValue().toString());
Double sec = deplong * deplat;
if (first <= distance && sec <= distance && item.child("DepartureDay").getValue().toString().equals(name)) {
UserDB entry = new UserDB(theName, from, to, price, time, theImage, id);
entries.clear();
entries.add(entry);
mRecyclerview.setAdapter(new RecUsersAdapter(getActivity(), entries));
findingLocation.dismiss();
}
} else {
message = "Sorry! Some records are missing";
String reason = message;
Toast.makeText(view.getContext(), reason, Toast.LENGTH_SHORT).show();
}
}
mUsersDatabaseReference.removeEventListener(this);
}
@Override
public void onCancelled (DatabaseError databaseError){
String reason = databaseError.getMessage().toString();
Toast.makeText(view.getContext(), reason, Toast.LENGTH_SHORT).show();
}
});