Flutter firebase как войти в систему пользователей с помощью google - PullRequest
1 голос
/ 12 июля 2020

привет, я пытаюсь войти в систему и зарегистрировать пользователей с помощью Google с помощью Firebase, поэтому для регистрации пользователей я делаю это

 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;
 }

поэтому мне нужно, как входить в систему пользователей с помощью Google приведенный выше код user = await _auth.signInWithCredential(credential); кажется, просто создает нового пользователя, если он не существует, но мне нужно войти в систему с помощью google в свою существующую учетную запись в моем приложении, а не создавать нового пользователя, если он не существует, поэтому как мне реализовать это

1 Ответ

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

Попробуйте это для обработки входа с учетной записью Google:

 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;
}
...