使用Firebase android时如何向用户添加用户名?

Ale*_*dez 4 android firebase firebase-authentication

我目前开始在我的Android应用程序中使用Firebase,并使用他们的GitHub上的示例来创建登录和注册活动.

https://github.com/firebase/quickstart-android

唯一的问题是,我注意到他们的版本只有登录和注册的电子邮件和密码.我想在注册时为用户添加用户名字段.我确实找到了一些可能提供答案的其他链接,但我知道Firebase最近已经更改,而且这些答案没有显示与示例相同的注册方法,所以我认为它可能会有所不同.这是我的createAccount代码块:

public void createAccount(String email, String password) {
    if (!validateForm()) {
        return;
    }

    showProgressDialog();

    mAuth.createUserWithEmailAndPassword(email, password).addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
        @Override
        public void onComplete(@NonNull Task<AuthResult> task) {
            if (!task.isSuccessful()) {
                Toast.makeText(LoginActivity.this, "An error occurred", Toast.LENGTH_SHORT).show();
            }
            hideProgressDialog();
        }
    )};
}
Run Code Online (Sandbox Code Playgroud)

ado*_*srs 6

什么createUserWithEmailAndPassword创建仅用于身份验证的内部用户火力点(你可以看到在这个信息验证在新的控制台).如果要向此用户添加更多信息(如Sahaj所述),则需要在firebase数据库(YourApp/users/userId)上创建一个用户节点来处理此用户名.在此节点中,您将存储要在应用程序中使用的所有用户信息.

在互联网上做一些研究,你可以找到一些关于如何正确做到这一点的例子.

创建用户时你需要做的就是调用一个能够创建新用户的函数.

mAuth.createUserWithEmailAndPassword(email, password).addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
    @Override
    public void onComplete(@NonNull Task<AuthResult> task) {
        if (!task.isSuccessful()) {
            Toast.makeText(LoginActivity.this, "An error occurred", Toast.LENGTH_SHORT).show();
        } else {
            createNewUser(task.getResult().getUser());
        }
        hideProgressDialog();
    }
)};


private void createNewUser(User userFromRegistration) {
    String username = "username";
    String email = userFromRegistration.getEmail();
    String userId = userFromRegistration.getUid();

    User user = new User(username, email);

    mDatabase.child("users").child(userId).setValue(user);
}
Run Code Online (Sandbox Code Playgroud)