Riverpod Notifier vs AsyncNotifier vs StreamNotifier in Flutter: which one do I extend?
Pick by the return type of build(): T means Notifier, FutureOr<T> means AsyncNotifier, Stream<T> means StreamNotifier. Here is the decision matrix, the type hierarchy that explains why, and the == filtering and state-clobbering gotchas that bite each one. Verified against flutter_riverpod 3.4.2 on Flutter 3.44.2.