使用 Google 登录的 Firebase Auth 中的用户个人资料信息为空
User profile info null in Firebase Auth with Google Sign-In
如何从 FirebaseUser 获取 Google 帐户的名称和个人资料照片?
我正在关注 Firebase 的 Android documentation 关于集成 Google 登录和 Firebase 身份验证。当我使用 Google 登录进行身份验证时,我可以从 GoogleSignInAccount#getPhotUrl()
和 GoogleSignInAccount#getDisplayName()
.
获取用户配置文件信息
我可以使用 FirebaseAuth.getInstance().signInWithCredential(account)
登录 Firebase(其中 account
是同一个经过身份验证的 GoogleSignInAccount
对象。但是我从 Firebase 端获得了用户个人资料信息的空值。
Google登录结果回调:
GoogleSignInResult result = Auth.GoogleSignInApi.getSignInResultFromIntent(data);
if (result.isSuccess()) {
GoogleSignInAccount account = result.getSignInAccount();
account.getEmail(); // Valid email
account.getDisplayName(); // Valid name
account.getPhotoUrl(); // Valid Uri
firebaseAuthWithGoogle(account);
}
Google 登录 + Firebase 身份验证:
private void firebaseAuthWithGoogle(GoogleSignInAccount account) {
AuthCredential credential = GoogleAuthProvider.getCredential(account.getIdToken(), null);
mAuth.signInWithCredential(credential)
.addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
if (task.isSuccessful()) {
// Sign in success, update UI with the signed-in user's information
Log.d(TAG, "signInWithCredential:success");
FirebaseUser user = mAuth.getCurrentUser();
user.getEmail(); // Valid email
user.getDisplayName(); // null
user.getPhotoUrl(); // null
}
}
});
}
我能够通过使用新的 Firebase 项目和新的 Gmail 帐户解决我的问题。
如何从 FirebaseUser 获取 Google 帐户的名称和个人资料照片?
我正在关注 Firebase 的 Android documentation 关于集成 Google 登录和 Firebase 身份验证。当我使用 Google 登录进行身份验证时,我可以从 GoogleSignInAccount#getPhotUrl()
和 GoogleSignInAccount#getDisplayName()
.
我可以使用 FirebaseAuth.getInstance().signInWithCredential(account)
登录 Firebase(其中 account
是同一个经过身份验证的 GoogleSignInAccount
对象。但是我从 Firebase 端获得了用户个人资料信息的空值。
Google登录结果回调:
GoogleSignInResult result = Auth.GoogleSignInApi.getSignInResultFromIntent(data);
if (result.isSuccess()) {
GoogleSignInAccount account = result.getSignInAccount();
account.getEmail(); // Valid email
account.getDisplayName(); // Valid name
account.getPhotoUrl(); // Valid Uri
firebaseAuthWithGoogle(account);
}
Google 登录 + Firebase 身份验证:
private void firebaseAuthWithGoogle(GoogleSignInAccount account) {
AuthCredential credential = GoogleAuthProvider.getCredential(account.getIdToken(), null);
mAuth.signInWithCredential(credential)
.addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
if (task.isSuccessful()) {
// Sign in success, update UI with the signed-in user's information
Log.d(TAG, "signInWithCredential:success");
FirebaseUser user = mAuth.getCurrentUser();
user.getEmail(); // Valid email
user.getDisplayName(); // null
user.getPhotoUrl(); // null
}
}
});
}
我能够通过使用新的 Firebase 项目和新的 Gmail 帐户解决我的问题。