Firebase Google 用户未显示在 Firebase 控制台身份验证中
Firebase Google users not showing in Firebase Console Authentication
使用 Firebase Google 身份验证,当用户使用其 google 帐户成功登录时,他们不会显示在我们的 Firebase 控制台身份验证-> 用户屏幕上。只有 email/password 用户出现在那里。
是否需要做一些额外的事情才能看到 Google Auth 用户?
正如 Frank 所指出的,要完全登录 Firebase,需要调用 signInWithCredential()。实施此功能后,使用 Google 登录的用户会出现在 Firebase 控制台中。
在Flutter中,除了GoogleSignIn,你还需要安装firebase_auth包。
https://pub.dev/packages/firebase_auth#-installing-tab-
https://pub.dev/packages/firebase_auth
import 'package:firebase_auth/firebase_auth.dart';
final GoogleSignIn _googleSignIn = GoogleSignIn();
final FirebaseAuth _auth = FirebaseAuth.instance;
Future<FirebaseUser> _handleSignIn() async {
final GoogleSignInAccount googleUser = await _googleSignIn.signIn();
final GoogleSignInAuthentication googleAuth = await googleUser.authentication;
final AuthCredential credential = GoogleAuthProvider.getCredential(
accessToken: googleAuth.accessToken,
idToken: googleAuth.idToken,
);
final FirebaseUser user = (await _auth.signInWithCredential(credential)).user;
print("signed in " + user.displayName);
return user;
}
...
_handleSignIn()
.then((FirebaseUser user) => print(user))
.catchError((e) => print(e));
按照以下步骤操作:
- 触发 Google 身份验证流程。
final GoogleSignInAccount googleUser = await GoogleSignIn().signIn();
- 从请求中获取授权详细信息。
final GoogleSignInAuthentication googleAuth = await googleUser.authentication;
- 创建新凭证
final GoogleAuthCredential googleCredential = GoogleAuthProvider.credential(
accessToken: googleAuth.accessToken,
idToken: googleAuth.idToken,
);
- 使用 Google [UserCredential]
登录 Firebase
final UserCredential googleUserCredential =
await FirebaseAuth.instance.signInWithCredential(googleCredential);
就是这样!!
使用 Firebase Google 身份验证,当用户使用其 google 帐户成功登录时,他们不会显示在我们的 Firebase 控制台身份验证-> 用户屏幕上。只有 email/password 用户出现在那里。
是否需要做一些额外的事情才能看到 Google Auth 用户?
正如 Frank 所指出的,要完全登录 Firebase,需要调用 signInWithCredential()。实施此功能后,使用 Google 登录的用户会出现在 Firebase 控制台中。
在Flutter中,除了GoogleSignIn,你还需要安装firebase_auth包。
https://pub.dev/packages/firebase_auth#-installing-tab-
https://pub.dev/packages/firebase_auth
import 'package:firebase_auth/firebase_auth.dart';
final GoogleSignIn _googleSignIn = GoogleSignIn();
final FirebaseAuth _auth = FirebaseAuth.instance;
Future<FirebaseUser> _handleSignIn() async {
final GoogleSignInAccount googleUser = await _googleSignIn.signIn();
final GoogleSignInAuthentication googleAuth = await googleUser.authentication;
final AuthCredential credential = GoogleAuthProvider.getCredential(
accessToken: googleAuth.accessToken,
idToken: googleAuth.idToken,
);
final FirebaseUser user = (await _auth.signInWithCredential(credential)).user;
print("signed in " + user.displayName);
return user;
}
...
_handleSignIn()
.then((FirebaseUser user) => print(user))
.catchError((e) => print(e));
按照以下步骤操作:
- 触发 Google 身份验证流程。
final GoogleSignInAccount googleUser = await GoogleSignIn().signIn();
- 从请求中获取授权详细信息。
final GoogleSignInAuthentication googleAuth = await googleUser.authentication;
- 创建新凭证
final GoogleAuthCredential googleCredential = GoogleAuthProvider.credential(
accessToken: googleAuth.accessToken,
idToken: googleAuth.idToken,
);
- 使用 Google [UserCredential] 登录 Firebase
final UserCredential googleUserCredential =
await FirebaseAuth.instance.signInWithCredential(googleCredential);
就是这样!!