このチュートリアルに従って、Flutter に Firebase Auth を実装しようとしています: https://youtu.be/vrPk6LB9bjo?t=393
ウィジェットは、ユーザーが riverpod フック メソッドとプロバイダーを使用してログインしているかどうかを確認し、HomeScreen または LoginScreen ウィジェットをロードする必要があります。
main.dart
class AuthWrapper extends HookWidget {
const AuthWrapper({Key key}) : super(key: key);
@override
Widget build(BuildContext context) {
final authControllerState = useProvider(authControllerProvider.state);
print(authControllerState);
if (authControllerState != null) {
return const HomeScreen();
}
return LoginScreen();
}
}
プロバイダ コントローラ:
final authControllerProvider = StateNotifierProvider<AuthController>(
(ref) => AuthController(ref.read),
);
class AuthController extends StateNotifier<User?> {
final Reader _read;
StreamSubscription<User?>? _authStateChangeSubscription;
AuthController(this._read) : super(null) {
_authStateChangeSubscription?.cancel();
_authStateChangeSubscription =
_read(authProvider).authStateChanges.listen((user) {
state = user;
});
}
}
しかし、私はこのエラーが発生しました。
'package:riverpod/src/framework/base provider.dart': アサーションに失敗しました: 944 行目 pos 7: 'exposedvalue is listened': プロバイダーが
null
null 非許容型に割り当てようとしましたexposedvalue
エラーは Provider Controller の実装にある可能性があると思いますが、どうすればよいかわかりません。
このエラーを修正する方法を知っている人はいますか?