signInWithEmailAndPassword method
Implementation
@override
Future<Either<AuthServiceSignInFailure, Unit>> signInWithEmailAndPassword(
String email, String password) async {
try {
var userCred = await _fbAuth.signInWithEmailAndPassword(
email: email,
password: password,
);
if (userCred.user == null) {
return left(AuthServiceSignInFailure.userNotFound);
}
await waitForCanCheckLoginState();
return right(unit);
//return right(currentUser.value);
} on fb_auth.FirebaseAuthException catch (e) {
switch (e.code) {
case 'invalid-email':
logd('signInWithEmailAndPassword invalid-email');
return left(AuthServiceSignInFailure.invalidEmail);
case 'user-not-found':
logd('signInWithEmailAndPassword user-not-found');
return left(AuthServiceSignInFailure.userNotFound);
case 'wrong-password':
logd('signInWithEmailAndPassword wrong-password');
return left(AuthServiceSignInFailure.wrongPassword);
case 'invalid-credential':
logd('signInWithEmailAndPassword invalid-credential');
return left(AuthServiceSignInFailure.wrongPassword);
case 'user-disabled':
logd('signInWithEmailAndPassword user-disabled');
return left(AuthServiceSignInFailure.userDisabled);
default:
logd('signInWithEmailAndPassword default exception');
return left(AuthServiceSignInFailure.unexpected);
}
} catch (e) {
loge(e);
return left(AuthServiceSignInFailure.unexpected);
}
}