繁体   English   中英

Flutter firebase 如何用google登录用户

[英]Flutter firebase how to sign in users with google

嗨,我正在尝试使用带有 Firebase 的 google 登录和注册用户,所以要注册用户,我正在这样做

 void handleGoogleSignIn() async{

    final GoogleSignInAccount googleUser=await _googleSignIn.signIn();
    final GoogleSignInAuthentication googleAuth = await googleUser.authentication;

    final AuthCredential credential=
    GoogleAuthProvider.getCredential(idToken: googleAuth.idToken, accessToken: 
    googleAuth.accessToken);

    user =(await _auth.signInWithCredential(credential)).user;
 }

所以我需要如何使用谷歌登录用户上面的代码user = await _auth.signInWithCredential(credential); 似乎只是创建一个新用户,如果它不存在,但我需要用谷歌登录用户到他们在我的应用程序中的现有帐户如果它不存在,则不创建新用户,所以我该如何实现

试试这个来处理使用谷歌帐户登录:

 Future<FirebaseUser> _handleSignIn() async {
       // hold the instance of the authenticated user
       FirebaseUser user;
       // flag to check whether we're signed in already
       bool isSignedIn = await _googleSignIn.isSignedIn();
       if (isSignedIn) {
          // if so, return the current user
          user = await _auth.currentUser();
       }
       else {
          final GoogleSignInAccount googleUser = 
             await _googleSignIn.signIn();
          final GoogleSignInAuthentication googleAuth = 
             await googleUser.authentication;
          // get the credentials to (access / id token)
          // to sign in via Firebase Authentication 
          final AuthCredential credential =
             GoogleAuthProvider.getCredential(
                accessToken: googleAuth.accessToken,
                idToken: googleAuth.idToken
             );
          user = (await _auth.signInWithCredential(credential)).user;
       }

 
   return user;
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM