android firebase-displayname未设置显示名称。这是虫子吗?

android firebase-displayname未设置显示名称。这是虫子吗?,android,web-services,firebase,firebase-authentication,Android,Web Services,Firebase,Firebase Authentication,似乎我只能找到一种方法来更新当前用户的显示名称,尽管我想在注册时这样做 这是我一直在尝试的代码,但它不起作用,我读到firebase中的一个bug,它需要注销以显示显示名称,但这并没有解决我的问题。这是密码 public void btnRegistrationUser_Click(View v) { final String email = txtEmailAddress.getText().toString(); final String passwo

似乎我只能找到一种方法来更新当前用户的显示名称,尽管我想在注册时这样做

这是我一直在尝试的代码,但它不起作用,我读到firebase中的一个bug,它需要注销以显示显示名称,但这并没有解决我的问题。这是密码

    public void btnRegistrationUser_Click(View v) {
        final String email = txtEmailAddress.getText().toString();
        final String password = txtPassword.getText().toString();
        final String username = txtUsername.getText().toString();
        final ProgressDialog progressDialog = ProgressDialog.show(RegistrationActivity.this, "Please wait...", "Processing...", true);
        (firebaseAuth.createUserWithEmailAndPassword(email,password ))
                .addOnCompleteListener(new OnCompleteListener<AuthResult>() {
                    @Override
                    public void onComplete(@NonNull Task<AuthResult> task) {
                        progressDialog.dismiss();

                        if (task.isSuccessful()) {
                            //Sign in the user here
                            signin(email,password,username);

                        }
                        else
                        {
                            Log.e("ERROR", task.getException().toString());
                            Toast.makeText(RegistrationActivity.this, task.getException().getMessage(), Toast.LENGTH_LONG).show();
                        }
                    }
                });
    }

    private void signin(String email, String password, final String username) {
        firebaseAuth.signInWithEmailAndPassword(email, password)
                .addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
                    @Override
                    public void onComplete(@NonNull Task<AuthResult> task) {
                        if (task.isSuccessful()) {
                            //New Account is signed in and now the Current User
                            FirebaseUser user = firebaseAuth.getInstance().getCurrentUser();
                            Toast.makeText(RegistrationActivity.this, "curr user is "+user.getEmail(), Toast.LENGTH_LONG).show();
                            Toast.makeText(RegistrationActivity.this, "passed in username is "+username, Toast.LENGTH_LONG).show();
                            firebaseAuth.getInstance().signOut();

                            UserProfileChangeRequest profileUpdates = new UserProfileChangeRequest.Builder()
                                    .setDisplayName(username)
                                    .build();
//                            Toast.makeText(RegistrationActivity.this, "Registration successful", Toast.LENGTH_LONG).show();
                            Toast.makeText(RegistrationActivity.this, "curr display name is "+user.getDisplayName(), Toast.LENGTH_LONG).show();

                            Intent i = new Intent(RegistrationActivity.this, LoginActivity.class);
                            startActivity(i);
                        }
                    }
                });
    }
}
public void btnregistration用户单击(视图五){
最终字符串email=txtEmailAddress.getText().toString();
最终字符串密码=txtPassword.getText().toString();
最终字符串username=txtUsername.getText().toString();
final ProgressDialog ProgressDialog=ProgressDialog.show(RegistrationActivity.this,“请稍候…”,“正在处理…”,true);
(firebaseAuth.createUserWithEmailAndPassword(电子邮件,密码))
.addOnCompleteListener(新的OnCompleteListener(){
@凌驾
未完成的公共void(@NonNull任务){
progressDialog.disclose();
if(task.issusccessful()){
//在此处登录用户
登录(电子邮件、密码、用户名);
}
其他的
{
Log.e(“错误”,task.getException().toString());
Toast.makeText(RegistrationActivity.this,task.getException().getMessage(),Toast.LENGTH_LONG).show();
}
}
});
}
私有无效登录(字符串电子邮件、字符串密码、最终字符串用户名){
firebaseAuth.使用电子邮件和密码登录(电子邮件,密码)
.addOnCompleteListener(这是新的OnCompleteListener(){
@凌驾
未完成的公共void(@NonNull任务){
if(task.issusccessful()){
//新帐户已登录,现在是当前用户
FirebaseUser=firebaseAuth.getInstance().getCurrentUser();
Toast.makeText(RegistrationActivity.this,“curr user is”+user.getEmail(),Toast.LENGTH_LONG.show();
Toast.makeText(RegistrationActivity.this,“传入的用户名是”+用户名,Toast.LENGTH\u LONG.show();
firebaseAuth.getInstance().signOut();
UserProfileChangeRequest profileUpdates=新建UserProfileChangeRequest.Builder()
.setDisplayName(用户名)
.build();
//Toast.makeText(RegistrationActivity.this,“注册成功”,Toast.LENGTH_LONG.show();
Toast.makeText(RegistrationActivity.this,“curr显示名称为”+user.getDisplayName(),Toast.LENGTH_LONG.show();
意向i=新意向(RegistrationActivity.this、LoginActivity.class);
星触觉(i);
}
}
});
}
}

谢谢

由于帐户注册成功,您可以尝试登录该用户。这样,当前用户就是当前注册的用户

      public void btnRegistrationUser_Click(View v) {
        final String email = txtEmailAddress.getText().toString();
        final String password = txtPassword.getText().toString();
        final String username = txtUsername.getText().toString();
        final ProgressDialog progressDialog = ProgressDialog.show(RegistrationActivity.this, "Please wait...", "Processing...", true);
        (firebaseAuth.createUserWithEmailAndPassword(email,password ))
                .addOnCompleteListener(new OnCompleteListener<AuthResult>() {
                    @Override
                    public void onComplete(@NonNull Task<AuthResult> task) {
                        progressDialog.dismiss();

                        if (task.isSuccessful()) {
                            //Sign in the user here
                            signin(email,password,username);

                        }
                        else
                        {
                            Log.e("ERROR", task.getException().toString());
                            Toast.makeText(RegistrationActivity.this, task.getException().getMessage(), Toast.LENGTH_LONG).show();
                        }
                    }
                });
    }

    private void signin(String email, String password, final String username) {
        firebaseAuth.signInWithEmailAndPassword(email, password)
                .addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
                    @Override
                    public void onComplete(@NonNull Task<AuthResult> task) {
                        if (task.isSuccessful()) {
                            //New Account is signed in and now the Current User
                            FirebaseUser user = firebaseAuth.getInstance().getCurrentUser();
                            Toast.makeText(RegistrationActivity.this, "curr user is "+user.getEmail(), Toast.LENGTH_LONG).show();

                            UserProfileChangeRequest profileUpdates = new UserProfileChangeRequest.Builder()
                                    .setDisplayName(username)
                                    .build();
                            user.updateProfile(profileUpdates)
                                .addOnCompleteListener(new OnCompleteListener<Void>() {
                                 @Override
                                public void onComplete(@NonNull Task<Void> task) {
                                    if (task.isSuccessful()) {
                                        Toast.makeText(RegistrationActivity.this, "curr display name is "+user.getDisplayName(), Toast.LENGTH_LONG).show(); 
                                    }
                                }
                            });


                            Intent i = new Intent(RegistrationActivity.this, LoginActivity.class);
                            startActivity(i);
                        }
                    }
                });
public void btnregistration用户单击(视图五){
最终字符串email=txtEmailAddress.getText().toString();
最终字符串密码=txtPassword.getText().toString();
最终字符串username=txtUsername.getText().toString();
final ProgressDialog ProgressDialog=ProgressDialog.show(RegistrationActivity.this,“请稍候…”,“正在处理…”,true);
(firebaseAuth.createUserWithEmailAndPassword(电子邮件,密码))

.addOnCompleteListener(新的OnCompleteListener

可能您可以尝试登录该用户,因为帐户注册成功。这样,当前用户将是当前注册的用户

      public void btnRegistrationUser_Click(View v) {
        final String email = txtEmailAddress.getText().toString();
        final String password = txtPassword.getText().toString();
        final String username = txtUsername.getText().toString();
        final ProgressDialog progressDialog = ProgressDialog.show(RegistrationActivity.this, "Please wait...", "Processing...", true);
        (firebaseAuth.createUserWithEmailAndPassword(email,password ))
                .addOnCompleteListener(new OnCompleteListener<AuthResult>() {
                    @Override
                    public void onComplete(@NonNull Task<AuthResult> task) {
                        progressDialog.dismiss();

                        if (task.isSuccessful()) {
                            //Sign in the user here
                            signin(email,password,username);

                        }
                        else
                        {
                            Log.e("ERROR", task.getException().toString());
                            Toast.makeText(RegistrationActivity.this, task.getException().getMessage(), Toast.LENGTH_LONG).show();
                        }
                    }
                });
    }

    private void signin(String email, String password, final String username) {
        firebaseAuth.signInWithEmailAndPassword(email, password)
                .addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
                    @Override
                    public void onComplete(@NonNull Task<AuthResult> task) {
                        if (task.isSuccessful()) {
                            //New Account is signed in and now the Current User
                            FirebaseUser user = firebaseAuth.getInstance().getCurrentUser();
                            Toast.makeText(RegistrationActivity.this, "curr user is "+user.getEmail(), Toast.LENGTH_LONG).show();

                            UserProfileChangeRequest profileUpdates = new UserProfileChangeRequest.Builder()
                                    .setDisplayName(username)
                                    .build();
                            user.updateProfile(profileUpdates)
                                .addOnCompleteListener(new OnCompleteListener<Void>() {
                                 @Override
                                public void onComplete(@NonNull Task<Void> task) {
                                    if (task.isSuccessful()) {
                                        Toast.makeText(RegistrationActivity.this, "curr display name is "+user.getDisplayName(), Toast.LENGTH_LONG).show(); 
                                    }
                                }
                            });


                            Intent i = new Intent(RegistrationActivity.this, LoginActivity.class);
                            startActivity(i);
                        }
                    }
                });
public void btnregistration用户单击(视图五){
最终字符串email=txtEmailAddress.getText().toString();
最终字符串密码=txtPassword.getText().toString();
最终字符串username=txtUsername.getText().toString();
final ProgressDialog ProgressDialog=ProgressDialog.show(RegistrationActivity.this,“请稍候…”,“正在处理…”,true);
(firebaseAuth.createUserWithEmailAndPassword(电子邮件,密码))

.addOnCompleteListener(新的OnCompleteListener

如果您是指my firebaseAuth,它会抛出一个错误-无法解析方法“addOnCompleteListener”(anonymous com.google.android.gms.tasks.OnCompleteListener,anonymous com.google.android.gms.tasks.OnCompleteListener抱歉,这应该是基于您的变量的firebaseAuth,请尝试将firebaseAuth设置为最终版本。我只是尝试在那里编辑您的答案,以向您展示我所做的工作,尽管现在它正在为正确的电子邮件地址干杯,但显示名称是still nul。我以前没有得到错误日志,这就像是一个弹出错误,代码带下划线。这可能是firebase中的错误吗?当我使用username变量时,这很好,但是当我尝试使用它来显示name时,displayName始终保持为空如果你是说我的firebaseAuth它抛出了一个错误-无法解析方法“addOnCompleteListener”(anonymous com.google.android.gms.tasks.OnCompleteListener,anonymous com.google.android.gms.tasks.OnCompleteListener抱歉,这应该是基于您的变量的firebaseAuth,请尝试将firebaseAuth设置为最终版本。我只是尝试在那里编辑您的答案,以向您展示我所做的工作,尽管现在它正在为正确的电子邮件地址干杯,但显示名称是still nul。我以前没有收到错误日志,这就像是一个弹出错误,代码带下划线。这可能是firebase中的错误吗?当我toast用户名变量时,这是正常的,但当我尝试使用它来显示名称时,displayName始终保持空值