build method

Initialize an AsyncNotifier.

It is safe to use Ref.watch or Ref.listen inside this method.

If a dependency of this AsyncNotifier (when using Ref.watch) changes, then build will be re-executed. On the other hand, the AsyncNotifier will not be recreated. Its instance will be preserved between executions of build.

If this method throws or returns a future that fails, the error will be caught and an AsyncError will be emitted.

Implementation

@override
FutureOr<UserRepositoryState> build(arg) async {
  _log = ref.watch(appTalkerProvider);
  _log.logCustom(UserRepositoryLog('build()'));
  _userId = arg;
  // Get the UserService instance from the provider
  _userService = ref.read(UserService.provider);

  // Fetch user data and start the user stream
  final result = await _fetchUserData();
  unawaited(_startFirestoreUserStream());

  return result;
}