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

就是这样!!