Inicio de sesión y registro de Firebase con nombre de usuario

Actualmente estoy usando AndroidHive'stutorial para aprender a usar Firebase, estoy empezando a comprender los métodos y la documentación ahora: me di cuenta de que Firebase ofrece un método de registro / inicio de sesión con correo electrónico y contraseña, y que esta información no está almacenada en nuestra base de datos.

Me gustaría implementar un sistema en el que cuando se registren proporcionen su correo electrónico, contraseña y nombre de usuario junto con algunos otros datos y todo se guardará en la base de datos. Para que el usuario pueda iniciar sesión con su correo electrónico o nombre de usuario. Encontré este artículo en la pila, que aparentemente es elresponder a esta pregunta que estoy haciendo: sin embargo, no entiendo completamente esto y cómo se vincula con mi código a continuación

auth.createUserWithEmailAndPassword(email, password)
.addOnCompleteListener(SignupActivity.this, new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
    Toast.makeText(SignupActivity.this, "createUserWithEmail:onComplete:" + task.isSuccessful(), Toast.LENGTH_SHORT).show();
    progressBar.setVisibility(View.GONE);

    if (!task.isSuccessful()) {
        Toast.makeText(SignupActivity.this, "Authentication failed." + task.getException(),
            Toast.LENGTH_SHORT).show();
    } else {
        startActivity(new Intent(SignupActivity.this, MainActivity.class));
        finish();
    }
}
});

Cualquier ayuda es muy apreciada gracias

Respuestas a la pregunta(2)

Su respuesta a la pregunta