[英]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.