signInWithEmailAndPassword method

  1. @override
Future<Either<AuthServiceSignInFailure, Unit>> signInWithEmailAndPassword(
  1. String email,
  2. String password
)
override

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);
  }
}