build method

  1. @override
Future<List<FeatureFlag>> build()
override

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
Future<List<FeatureFlag>> build() async {
  final repo = ref.watch(featureFlagRepositoryProvider);

  // Automatically invalidate the provider when the repository reports an update
  // (e.g., from a Remote Config sync).
  final subscription = repo.onUpdated.listen((_) => ref.invalidateSelf());
  ref.onDispose(subscription.cancel);

  return repo.getAllFlags();
}