android - 在 Android 中注册 Firebase 期间存储附加信息

标签 android firebase firebase-realtime-database firebase-authentication

我尝试通过发送电子邮件和密码来使用 Firebase Auth 创建用户。现在我想在创建用户后存储名字和姓氏。由于我是 Android 和 Firebase 的新手,我只是不知道该怎么做。谁能帮我解决这个问题吗?

我的代码:

public class RegistrationActivity extends AppCompatActivity {

private FirebaseAuth auth;
Button cancel, submit;
EditText email, password, firstName, lastName;
private ProgressDialog progressDialog;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_registration);

    progressDialog = new ProgressDialog(this);

    email = (EditText) findViewById(R.id.email);
    password = (EditText) findViewById(R.id.password);
    firstName = (EditText) findViewById(R.id.firstName);
    lastName = (EditText) findViewById(R.id.lastName);

    submit = (Button) findViewById(R.id.submit);
    submit.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            String inputEmail = email.getText().toString().trim();
            String inputPassword = password.getText().toString().trim();
            registerUser();
        }
    });
}

private void registerUser(){
    final String inputFirstName = firstName.getText().toString();
    String inputLastName = lastName.getText().toString();
    final String inputEmail = email.getText().toString();
    String inputPassword = password.getText().toString();

    progressDialog.setMessage("Registering..");
    progressDialog.show();

    //create user
    auth.createUserWithEmailAndPassword(inputEmail, inputPassword)
            .addOnCompleteListener(RegistrationActivity.this, new OnCompleteListener<AuthResult>() {
                @Override
                public void onComplete(@NonNull Task<AuthResult> task) {
                    if (!task.isSuccessful()) {
                        Toast.makeText(RegistrationActivity.this, "Authentication failed." + task.getException(),
                                Toast.LENGTH_SHORT).show();
                    } else {                      
                        Toast.makeText(RegistrationActivity.this, "User created successfully.", Toast.LENGTH_SHORT).show();
                        progressDialog.hide();
                        startActivity(new Intent(RegistrationActivity.this, MainActivity.class));
                    }
                }
            });
}

最佳答案

您可以像这样创建用户类:

public class User{

 String name;
 String surname;
 String website;
 ....

 public User(){
   // Default constructor required
 }

 public void setName(String name){this.name = name;}
 public void setSurname(String surname){this.surname = surname;}
 public void setWebsite(String website){this.website = website;}

 public String getName(){ return name; }
 .....

}

然后使用它:

User user = new User();
user.setName("xxxx");
user.setSurname("xxxx");
user.setWebsite("xxxx");

mDatabase.child("users").push().setValue(user);

关于android - 在 Android 中注册 Firebase 期间存储附加信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42268081/

相关文章:

java - 显示 Firebase 存储中的数据

android - 16 : Skipping password saving since the user is likely prompted with Android Autofill

java - 因此,我正在使用此应用程序,它没有显示任何错误并已成功安装,但运行后便崩溃了

android - 移动推送通知使用什么协议(protocol)?

node.js - Firebase 函数错误 <admin.auth 不是 ..> 的函数

java - 注册后定向到登录 Activity 而不是主要 Activity ?

交易后 Android Fragment 不膨胀

android - 如何在android中获取移动设备的Mac ID?

Firebase 事务精度损失

java - 从 Firebase 实时数据库检索数据到 ListView