Когда я выхожу из приложения и снова захожу, он автоматически попадает на домашнюю страницу без запроса выбора учетной записи. - PullRequest
0 голосов
/ 16 мая 2019

Я создал приложение для входа, используя flutter и firebase. я делаю гугл логин. У меня есть 2 страницы login.dart и homepage.dart, где все происходит. Когда я нажимаю кнопку входа в систему, он запрашивает выбор учетной записи и возвращает меня на домашнюю страницу, но когда я выхожу из системы и снова пытаюсь войти в систему, он автоматически переводит меня на домашнюю страницу, но я хочу, чтобы он снова запрашивал выбор учетной записи.

Я создал функцию signout () на самой странице входа, где я написал код для остальной части аутентификации, но когда я вызываю эту функцию в homepage.dart в кнопке выхода из системы, она не приходит.

Код для аутентификации при входе в loginpage.dart

class _LoginPageState extends State<LoginPage> {
  String _email;
  String _password;

  //google sign in
  final GoogleSignIn googleSignIn=  GoogleSignIn();
  final FirebaseAuth _auth = FirebaseAuth.instance;
  Future<FirebaseUser> _signIn() async{
    //GoogleSignInAccount googleSignInAccount = await googleSignIn.signIn();
    GoogleSignInAccount googleUser = await googleSignIn.signIn();
    GoogleSignInAuthentication googleAuth = await googleUser.authentication;
    final AuthCredential credential = GoogleAuthProvider.getCredential(
      idToken: googleAuth.idToken,
      accessToken: googleAuth.accessToken,
    );
    final FirebaseUser user = await _auth.signInWithCredential(credential);
    print("User Name: ${user.displayName}");
    assert(await user.getIdToken() != null);
    final FirebaseUser currentUser = await _auth.currentUser();
    assert(user.uid == currentUser.uid);
    Navigator.of(context).pushReplacementNamed('/homepage');
  }

  Future<void> signOut() async {
  return googleSignIn.signOut();
  }

код кнопки выхода из системы на homepage.dart

 MaterialButton(
                  onPressed: () {
                    signOut
                    FirebaseAuth.instance.signOut().then((value) {
                      Navigator.of(context).pushReplacementNamed('/landingpage');
                    })
                        .catchError((e){
                      print(e);
                    });
                  },
                child: Text('Log Out'),
              )

Пожалуйста, помогите мне

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...