Как перенаправить на страницу входа после нажатия кнопки выхода во флаттере - PullRequest
0 голосов
/ 13 июля 2020

Здесь я использую аутентификацию телефона firebase, поэтому всякий раз, когда я нажимаю кнопку sigout, он выходит из экземпляра firebase, но не перенаправляет на страницу входа.

Вот код для кнопки sigout

  return Scaffold(
        body: Center(
            child: RaisedButton(
              child: Text('Signout'),
              onPressed: () {
                AuthService().signOut();
              },
            )
        )
    );

Вот код для AuthService

  class AuthService {

  handleAuth() {
    return StreamBuilder(
        stream: FirebaseAuth.instance.onAuthStateChanged,
        builder: (BuildContext context, snapshot) {
          if (snapshot.hasData) {
            return HomeScreen();
          } else {
            return LoginPage();
          }
        });
  }

  //Sign out
  signOut() {
    FirebaseAuth.instance.signOut();
  }

  //SignIn
  signIn(AuthCredential authCreds) {
    FirebaseAuth.instance.signInWithCredential(authCreds);
  }

  signInWithOTP(smsCode, verId) {
    AuthCredential authCreds = PhoneAuthProvider.getCredential(
        verificationId: verId, smsCode: smsCode);
    signIn(authCreds);
  }
}

Как мне перенаправить его на страницу входа при нажатии кнопки выхода?

1 Ответ

2 голосов
/ 13 июля 2020

Вызовите экран входа в систему и очистите все предыдущие пути

вы можете использовать показанный ниже код

он очистит все пути и вашу историю и запустит новый LoginScreen

 Navigator.of(context).pushAndRemoveUntil(
    new MaterialPageRoute(
        builder: (context) =>
            new LoginScreen()),
    (route) => false);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...