Cubit 状态显示 2 个不同的值

Cubit state shows 2 different values

我有这样的基本授权:

class AuthCubit extends Cubit<AuthState> {
  AuthCubit() : super(const _AuthState(isUserSignedIn: false)) {
    FirebaseAuth.instance.authStateChanges().listen((User? user) {
      if (user == null) {
        emit(state.copyWith(
          isUserSignedIn: false,
        ));

        print('user logged out');
      } else {
        print('user logged innnnn');
        emit(state.copyWith(isUserSignedIn: true));
      }
      print(state);
    });
  }
}

当我打印上面的语句时,它工作正常(当我登录时,它给出:AuthState(isUserSignedIn: true)

现在,问题从这里开始: Main.dart

class AppWidget extends StatelessWidget {
  const AppWidget({Key? key}) : super(key: key);

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
        home: BlocProvider(
      lazy: false,
      create: (context) => AuthCubit(),
      child: FlowBuilder<AuthState>(
          state: const AuthState(),
          onGeneratePages: (authState, pages) {
            print(("HERE MAIN.DART AuthState ${authState}"));
            if (authState.isUserSignedIn) {
              return [SignInPage.page()];
            } else {
              return [SignInPage.page()];
            }
          }),
    ));
  }
}

我使用流量生成器。 HERE MAIN.DART 段的代码,给出的是false,虽然real 语句是true。 顺便说一句,auth state 有默认值(false),因此它可以给出也许我不知道。

此处的授权状态:

@freezed
class AuthState with _$AuthState {
  const factory AuthState({
    @Default(false) bool isUserSignedIn,
  }) = _AuthState;
}

我用 flow_builder 包解决了。