authStateChanges method

  1. @override
Stream<UserModel?> authStateChanges()
override

Implementation

@override
Stream<UserModel?> authStateChanges() {
  return _auth
      .authStateChanges()
      .map((firebase_auth.User? firebaseUser) async* {
        if (firebaseUser == null) {
          yield null;
        } else {
          try {
            final claims = await getUserClaims();
            yield UserModel(
              uid: firebaseUser.uid,
              email: firebaseUser.email,
              username: firebaseUser.displayName,
              claims: claims,
            );
          } catch (e) {
            error('Error in authStateChanges: ${e.toString()}');
            yield null;
          }
        }
      })
      .asyncExpand((stream) => stream);
}