У меня также есть такой случай, и я создаю свой собственный обратный вызов, например:
public interface IMyCallback {
void onSuccess(boolean isExist);
void onFailure(String error);
}
Теперь, когда я вызываю функцию checkDataExists
, она выглядит следующим образом:
checkDataExists(mobile, new ISingUpCallback() {
@Override
public void onSuccess(boolean isExist) {
}
@Override
public void onFailure(String error) {
}
});
И вваш чек, вам нужно внести изменения, такие как:
void checkDataExists(final String mobile, final IMyCallback callback){
DatabaseReference fireDBRef = FirebaseDatabase.getInstance().getReference(context.getString(R.string.app_name);
fireDBRef.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
String mob =
String.valueOf(dataSnapshot.child(context.getString(R.string.tracked_mobile))
.getValue());
//compare the strings mobile
boolean match = mobile.equals(mob);
// return match value to fragment to update the view.
callback.onSuccess(match);
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
callback.onFailure(databaseError.getMessage());
}
});
}