gpt4 book ai didi

android - firebaseAuth.getCurrentUser() 返回 null DisplayName

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:54:58 26 4
gpt4 key购买 nike

当我使用我的 google 帐户登录并使用 getDisplayName() 获取名称时,我的名称正确显示,但在 AuthStateListener 中显示不正确。

这里是我的部分代码:

private void handleSignInResult(GoogleSignInResult result) {

Alert.dismissProgress();

if (result.isSuccess()) {
GoogleSignInAccount acct = result.getSignInAccount();

if(acct != null) {
Log.i("NAME", acct.getDisplayName()); <-- RETURN MY NAME CORRECTLY
credential = GoogleAuthProvider.getCredential(acct.getIdToken(), null);
fuser.linkWithCredential(credential).addOnCompleteListener(authResult);
} else {
//ERROR
}

} else {
//ERROR
}
}

但是在我的 AuthStateListener 中

@Override
public void onAuthStateChanged(@NonNull FirebaseAuth firebaseAuth) {
FirebaseUser nuser = firebaseAuth.getCurrentUser();

if (nuser != null) {

Log.i("NAME", nuser.getDisplayName()); <--- RETURN NULL
}
}

有人知道为什么会这样吗?

最佳答案

这是一个棘手的问题,因为它在文档中不是很清楚...

检查 getProviderData()

定义如下: https://firebase.google.com/docs/reference/android/com/google/firebase/auth/FirebaseUser#public-method-summary

您可以迭代该列表,它将包含与该帐户关联的所有提供商,包括 providerId = "google.com"且显示名称 = YOUR_GOOGLE_USERNAME 的提供商

如果你做不到,请告诉我

关于android - firebaseAuth.getCurrentUser() 返回 null DisplayName,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37661747/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com