我是新来的android学习者,所以我很难做一些我在文档中找不到的东西。这是我创建用户的代码

 mAuth.createUserWithEmailAndPassword(email,password)
            .addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
                @Override
                public void onComplete(@NonNull Task<AuthResult> task) {
                    if(task.isSuccessful()){
                        //Successfully Registered
                        Toast.makeText(RegisterActivity.this, "Registration Successful", Toast.LENGTH_SHORT).show();
                    }else {
                        //Error occurred during registration
                        Toast.makeText(RegisterActivity.this, "Registration Unsuccessful", Toast.LENGTH_SHORT).show();
                        try {
                            throw task.getException();
                        } catch(FirebaseAuthWeakPasswordException e) {
                            editTextPassword.setError(e.getMessage());
                            editTextPassword.requestFocus();
                        }catch(FirebaseAuthUserCollisionException | FirebaseAuthInvalidCredentialsException e) {
                            editTextEmail.setError(e.getMessage());
                            editTextEmail.requestFocus();
                        } catch(Exception e) {
                            Log.e(RegisterActivity.class.getName(), e.getMessage());
                        }
                    }
                    progressDialog.dismiss();
                }
            });


只需两个参数(电子邮件和密码)即可创建用户。要创建具有更多字段的用户,我应该采用哪种方法。

我还添加了FirebaseAuth.AuthStateListener()来检查用户登录状态。但是当用户成功登录后调用firebaseAuth.getCurrentUser().getDisplayName()时,它会照常返回null,因此如何创建具有名称的用户,以便可以使用firebaseAuth.getCurrentUser().getDisplayName()检索它。

最佳答案

注册成功后,

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

UserProfileChangeRequest profileUpdates = new UserProfileChangeRequest.Builder()
        .setDisplayName("Jane Q. User")
        .build();




编辑:此代码有点不完整,因为从未访问profileUpdates

user.updateProfile(profileUpdates)
    .addOnCompleteListener(new OnCompleteListener<Void>() {
        @Override
        public void onComplete(@NonNull Task<Void> task) {
            if (task.isSuccessful()) {
                Log.d(TAG, "User profile updated.");
             }
         }
     });




然后,要检索它,请在需要的地方使用它,

FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser();
if (user != null) {
    // Name, email address etc
    String name = user.getDisplayName();
    String email = user.getEmail();
}

07-24 09:49
查看更多