tokenRefresh property

Stream<AuthUser> tokenRefresh

Stream of AuthUser which will emit the current user when the authentication state changes. This stream will also emit when the user is signed out.

Emits AuthUser.empty if the user is not authenticated.

Implementation

Stream<AuthUser> get tokenRefresh {
  return _firebaseAuth.idTokenChanges().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;
  });
}