Я работаю с флаттером и Node, чтобы создать небольшое приложение.
Я пытаюсь обработать состояние аутентификации в моем приложении с помощью streamController. Мой builderPage проверит состояние приложения и вернет loginPage или menuPage:
class BuilderPage extends StatelessWidget {
// ignore: close_sinks
final StreamController<AuthenticationState> _streamController = StreamController<AuthenticationState>();
Widget buildUi(BuildContext context, AuthenticationState s) {
print(s.authenticated);
if (s.authenticated) {
return MenuPage(_streamController);
} else {
return LoginPage(_streamController);
}
}
@override
Widget build(BuildContext context) {
return StreamBuilder<AuthenticationState>(
stream: _streamController.stream,
initialData: AuthenticationState.initial(),
builder: (BuildContext context,
AsyncSnapshot<AuthenticationState> snapshot) {
final state = snapshot.data;
return buildUi(context, state);
});
}
}
Когда я аутентифицируюсь в приложении, мой authState становится "true". это работает, я иду на страницу меню, но моя проблема становится, когда я пытаюсь отключиться от приложения. Мой streamController не будет перестраивать мое приложение и переместит меня на страницу входа.
signOut() {
_streamController.add(AuthenticationState.signedOut());
}
Как обработать мой authState с помощью streamController в моем приложении?