В моем приложении я пытаюсь выполнить простую операцию входа в систему / регистрации.
У меня есть StreamBuilder
, которое возвращает экран входа в систему, если пользователя нет, и домашний экран, если пользователь вошел в систему:
StreamBuilder(
stream: FirebaseAuth.instance.onAuthStateChanged,
builder: (BuildContext context, AsyncSnapshot snapshot) {
Widget widget;
switch (snapshot.data) {
case (null):
widget = SignIn();
break;
default:
widget = Home();
}
return AnimatedSwitcher(
child: widget,
duration: Duration(seconds: 1),
transitionBuilder: (Widget child, Animation<double> animation) {
return ScaleTransition(child: child, scale: animation);
},
);
}),
Код отлично работает, как показано ниже:
Но когда пользователь уже вошел в систему, и я закрываю и снова открываю приложение, страница входа в систему ненадолго отображается перед перенаправлением на домашнюю страницу.
То же самое происходит, когда я нажимаю на горячий перезапуск:
На изображении выше я уже вошел в систему, затем я нажал «горячую перезагрузку», и перед тем, как я был перенаправлен на главный экран, ненадолго отобразился экран входа в систему.
То же самое происходит, когда inte rnet выключен, и анимированного переключателя нет.
Как исправить эту проблему?