如何在android中添加FirebaseAuth的用户名

时间:2017-12-15 12:35:51

标签: android firebase-authentication

Firebase注册码如下。当我添加用户名作为参数时,该方法不允许我这样做。

firebaseAuth.createUserWithEmailAndPassword(email, password)
            .addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
                @Override
                public void onComplete(@NonNull Task<AuthResult> task) {
                    //checking if success
                    if(task.isSuccessful()){
                        finish();
                        startActivity(new Intent(getApplicationContext(), MainActivity.class));
                    }else{
                        //display some message here
                        Toast.makeText(RegisterActivity.this,"Bir hata oldu",Toast.LENGTH_LONG).show();
                    }
                    progressDialog.dismiss();
                }
            });

1 个答案:

答案 0 :(得分:1)

您需要在创建后更新用户。

firebaseAuth.createUserWithEmailAndPassword(email, password).addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
    @Override
    public void onComplete(@NonNull Task<AuthResult> task) {
        if (!task.isSuccessful()) {
            Toast.makeText(YourActivity.this, "An error occurred", Toast.LENGTH_SHORT).show();
        } else {
            addUserNameToUser(task.getResult().getUser());
        }
    }
)};
private void addUserNameToUser(User user){
    String username = "username";
    String email = user.getEmail();
    String userId = user.getUid();

    User user = new User(username, email);

    firebaseDB.child("users").child(userId).setValue(user);
}

之前应创建变量firebaseDB。您可以在创建firebaseAuth的位置创建;

firebaseDB = FirebaseDatabase.getInstance().getReference();

更新1 使用com.google.firebase:firebase-auth:11.6.2

public class MainActivity extends AppCompatActivity {


    protected void onCreate(final Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        FirebaseAuth firebaseAuth = FirebaseAuth.getInstance();

        firebaseAuth.createUserWithEmailAndPassword("erginersoyy@gmail.com", "12345").addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
            @Override
            public void onComplete(@NonNull Task<AuthResult> task) {
                if (!task.isSuccessful()) {
                    Toast.makeText(MainActivity.this, "An error occurred", Toast.LENGTH_SHORT).show();
                } else {
                    addUserNameToUser(task.getResult().getUser());
                }
            }
        });
    }

    private void addUserNameToUser(FirebaseUser user) {
        String username = "username";

        UserProfileChangeRequest profileUpdates = new UserProfileChangeRequest.Builder()
                .setDisplayName(username)
                .setPhotoUri(Uri.parse("https://example.com/jane-q-user/profile.jpg"))
                .build();

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


}

您还可以查看this link