user property

Stream of AuthUser which will emit the current user when the authentication state changes.

Emits AuthUser.empty if the user is not authenticated.

Implementation

Stream<AuthUser> get user {
  return _firebaseAuth.authStateChanges().asyncMap((firebaseUser) async {
    final authToken = await firebaseUser?.getIdToken(true);
    final user = firebaseUser == null
        ? AuthUser.empty
        : firebaseUser.toUser.copyWith(authToken: authToken);
    _cache.write(key: userCacheKey, value: user);
    return user;
  });
}