Flutter Firebase Instance authStateChanges() обновляет экран только после горячего перезапускаAndroid

Форум для тех, кто программирует под Android
Anonymous
Flutter Firebase Instance authStateChanges() обновляет экран только после горячего перезапуска

Сообщение Anonymous »

У меня есть настройка экрана проверки аутентификации, в которой строитель прослушивает authStateChanges() и, надеюсь, обновит экран и покажет домашнюю страницу, когда пользователь входит в систему. Я пытался возиться с проверкой аутентификации, что является моим главным подозрением. , а также с функциями входа и выхода из системы. Я не знаю, что еще делать, любая помощь приветствуется.
@override //this is a stateful widget btw
Widget build(BuildContext context) {
return StreamBuilder(
stream: AuthHelper().authStateChanges, // just a getter for FirebaseAuth.instance.authStateChanges()
builder: (context, snapshot) {
return snapshot.hasData
? const HomeScreenLayout()
: const LoginOptionsScreen();
},
);
}

А вот как выглядит кнопка:
StandardButton(
...,
onTap: () {
AuthHelper().signInWithEmail(
email: userEmail.text.trim(),
password: password.text.trim(),
);
},
),
// the method inside AuthHelper class
Future signInWithEmail({email, password}) async {
await FirebaseAuth.instance.signInWithEmailAndPassword(
email: email,
password: password,
);
}

Проблема в том, что после ввода правильных данных для входа и нажатия кнопки экран, который в противном случае должен был бы обновиться, не обновляется. Мне приходится каждый раз перезапускать приложение, чтобы увидеть изменения.
Странно то, что функция выхода для того же класса, работающая с одной и той же кнопкой на главном экране, работает правильно и перенаправляет меня на страница входа автоматически
StandardButton(
...,
onTap: () {
AuthHelper().signOut();
},
),
// the method inside AuthHelper class
Future signOut() async {
await _firebaseInstance.signOut();
}


Подробнее здесь: https://stackoverflow.com/questions/786 ... -hot-resta

Вернуться в «Android»