im trying to validate whether a user input is valid, but seems like my method returns before actual completion. both OnCompleteListener and onSuccessListener has the same issue. Wondering if there's any way to solve this issue. Would separating return solve the issue...
public static boolean signUp_validateUsername(Context _context, String username){
mContext = _context;
mAuth = FirebaseAuth.getInstance();
mAuth.fetchSignInMethodsForEmail(emailReformatter(username)).addOnCompleteListener(new OnCompleteListener<SignInMethodQueryResult>() {
@Override
public void onComplete(@NonNull Task<SignInMethodQueryResult> task) {
if (task.getResult().getSignInMethods().isEmpty()){
mRetVal = true;
Log.i(TAG, "onComplete: ");
}
else mRetVal = false;
}
}).addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
mRetVal = false;
}
});
// mAuth.fetchSignInMethodsForEmail(emailReformatter(username)).addOnSuccessListener(new OnSuccessListener<SignInMethodQueryResult>() {
// @Override
// public void onSuccess(SignInMethodQueryResult signInMethodQueryResult) {
// Log.i(TAG, "onSuccess: ");
// mRetVal = true;
// }
// }).addOnFailureListener(new OnFailureListener() {
// @Override
// public void onFailure(@NonNull Exception e) {
// Log.i(TAG, "onFailure: ");
// mRetVal = false;
// }
// });
Log.i(TAG, "retval: " + mRetVal);
return mRetVal;
}
this is the log
I/DatabaseUtil.TAG: retval: false
D/NetworkSecurityConfig: No Network Security Config specified, using platform default
W/System: Ignoring header X-Firebase-Locale because its value was null.
I/DatabaseUtil.TAG: onComplete:
V/FA: Inactivity, disconnecting from the service
AND which is more proper to use in this situation? completeListener vs. successlistener ?