簡體   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