4

このチュートリアルに従って、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': プロバイダーが nullnull 非許容型に割り当てようとしましたexposedvalue

エラーは Provider Controller の実装にある可能性があると思いますが、どうすればよいかわかりません。

このエラーを修正する方法を知っている人はいますか?

4

0 に答える 0