当我退出应用程序并再次登录时,它会自动带我进入主页,而无需要求选择帐户

时间:2019-05-16 13:11:13

标签: firebase dart flutter firebase-authentication google-authentication

我已经使用flutter和firebase创建了登录应用程序。 我正在做google登录。我有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'),
              )

请帮帮我

0 个答案:

没有答案