android - 使用 Firebase Auth 创建用户后 displayName 显示为 null

标签 android firebase firebase-authentication

我正在尝试使用 Firebase 身份验证添加用户,它返回 displayName 为 null,即使它在注册时通过 UI 请求它。任何想法为什么以及如何解决?这是我用来执行此操作的代码:

startActivityForResult( AuthUI.getInstance()
                                            .createSignInIntentBuilder()
                                            .setProviders(Collections.singletonList(new AuthUI.IdpConfig.Builder(AuthUI.EMAIL_PROVIDER).build()))
                                            .build(), RC_SIGN_IN);

并在结果 Activity 中......

protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    if (resultCode == RESULT_OK) {
        // user is signed in!

        //save user
        saveUser();

        startMainActivity();
        return;
    }

保存用户代码如下:

private void saveUser(){
    FirebaseUser fUser = FirebaseAuth.getInstance().getCurrentUser();
    final User user = new User();
    if (fUser.getDisplayName() != null) {
        user.setUserName(fUser.getDisplayName());
    } else {
        Log.e("FB_info", "User has no display name");
    }
    user.setUserEmail(fUser.getEmail());

    final DatabaseReference userRef =         FirebaseDatabase.getInstance().getReference(FirebaseRefs.getUsersRef()).child(fUser.getUid());
    userRef.addListenerForSingleValueEvent(new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {
            if(!dataSnapshot.exists()){
                userRef.updateChildren(user.toMap());
            }
        }

        @Override
        public void onCancelled(DatabaseError databaseError) {

        }
    });

}

知道为什么显示名称返回 null 吗?

最佳答案

所以这似乎是(现在已知的)Firebase 本身的错误(不是 Firebase-UI)。该错误似乎是在 Firebase Android SDK v9.8.0 版本中引入的。目前的解决方法之一是强制用户在系统注册后注销并重新登录。另一个涉及将 FirebaseUI 降级 到使用旧 Firebase SDK 版本的版本。 来源:https://github.com/firebase/FirebaseUI-Android/issues/409

关于android - 使用 Firebase Auth 创建用户后 displayName 显示为 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40683510/

相关文章:

android - Firebase 动态链接随机打开 playstore,但应用已安装

android - 无法处理Android Studio中的依赖项

swift - FirebaseFirestoreSwift 不会安装 (CocoaPods)

firebase - 跨所有选项卡获取 Firebase session

javascript - 想要在js中匹配firestore数据库中的电子邮件和密码

ios - 跨 iOS 设备保持 Firebase 身份验证状态

php - Android应用程序的用户身份验证

android - 如何在旧版 Android 中使用 Fragments 和 objectAnimator?

swift - 如何从 Firebase 获取图像并将其显示为 ImageView ?

firebase - 在 Firebase 用户表上添加额外详细信息