如何在Firebase中通过电子邮件和密码身份验证添加DisplayName?安卓系统

Par*_*jan 5 android firebase firebase-authentication

private void registerUser(){
String emailId = email.getText().toString().trim().toLowerCase();
String password = pass.getText().toString().trim();

firebaseAuth.createUserWithEmailAndPassword(emailId,password)
        .addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
            @Override
            public void onComplete(@NonNull Task<AuthResult> task) {
                progressDialog.dismiss();
                if(task.isSuccessful()){
                    Toast.makeText(MainActivity.this,"Registration Successful",Toast.LENGTH_SHORT).show();

                    //show chatroom
                    finish();
                    startActivity(new Intent(getApplicationContext(),ProfileActivity.class));
                }
                else{
                    Toast.makeText(MainActivity.this,"Registration Failed. Please try again",Toast.LENGTH_SHORT).show();
                }
            }
        });
}
Run Code Online (Sandbox Code Playgroud)

我希望为其添加用户名或显示名称,但无法这样做。我尝试了几件事,但仍然没有结果。请帮助我。我需要这个功能来提交本周的项目。

eda*_*t92 6

这绝对是可能的,但只是不在用户创建方法中。

创建用户后(可能在 中addOnSuccessListener),您可以使用类似于以下代码的内容来更新 Users DisplayName:

FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser();

UserProfileChangeRequest profileUpdates = new UserProfileChangeRequest.Builder().setDisplayName("John Smith").build();

user.updateProfile(profileUpdates);
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助!

编辑:我之前说过将代码添加到 AuthStateListener,但是,Frank 下面的建议将其放入 addOnSuccessListener 更好/更有意义,因此我更新了答案以反映这一点。

  • 好答案!我可能会在“addOnSuccessListener”中执行此操作,因为您通常只想在创建帐户时设置名称。 (2认同)