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