Я пытаюсь реализовать авторизацию Firebase в Flutter. Я могу войти в систему и перейти на новый экран успешно, однако при попытке выйти из системы я вижу активность в logcat, указывающую:
Однако я Я ожидаю обновления домашней страницы на основе этого выхода. То есть, у меня есть значок, который должен переключаться между входом в систему и выходом из системы, но приложение, кажется, остается подключенным. Это ожидаемые изменения макета, которые появляются на том же экране:
Пользователь нажимает кнопку выхода из системы, но я ожидаю, что виджет обновится до следующего:
Моя функция то, что я призываю к выходу из системы, выглядит следующим образом и отображается в виджете моей домашней страницы
class _MainActivityState extends State<MainActivity> {
var userStatus = FirebaseAuth.instance.currentUser();
Future logout()
async{
final FirebaseAuth auth = FirebaseAuth.instance;
await auth.signOut();
Navigator.push(context,MaterialPageRoute(builder: (context) => MainActivity())
);
return userStatus = null;
}
Далее в моем коде я использую оператор if
(который работает, если я вручную перезаписываю вход / выход из системы с помощью строка) для переключения между виджетами, основанными на userStatus, следующим образом:
if(userStatus != null)
Container(
//Some code here for the widget showing login button.
)
или в случае выхода из системы:
if(userStatus == null)
Container(
//Some code here for the widget showing login button
)
У меня есть отдельная страница входа, где я первоначально выполнил вход, но авторизация статус, кажется, сохраняется для всего приложения.
Как переопределить, так как Auth.signout()
не обновляет статус пользователя.