signInByBiometric method

Future<Response> signInByBiometric()

Implementation

Future<Response> signInByBiometric() async {
  emit(state.copy(isLoading: true));
  final response = await handler.signInWithBiometric();
  if (response.isSuccessful) {
    final userResponse = await userHandler.get(uid, fromCache: true);
    final user = userResponse.data;
    if (userResponse.isSuccessful && user is UserEntity) {
      final email = user.email;
      final password = user.password;
      final loginResponse = await handler.signInWithEmailNPassword(
        email: email,
        password: password,
      );
      if (loginResponse.isSuccessful) {
        emit(state.copy(
          isLoggedIn: true,
          firebaseUser: loginResponse.data?.user,
          user: user,
        ));
      } else {
        emit(state.copy(error: loginResponse.message));
      }
      return loginResponse;
    } else {
      emit(state.copy(error: userResponse.message));
    }
    return userResponse;
  } else {
    emit(state.copy(error: response.message));
  }
  return response;
}