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;
}