我正在尝试将数据插入Firebase实时数据库 . 我的应用程序的逻辑是在用户注册时在数据库的users列下创建一个包含用户名和密码的新字段 .
注册时,该应用需要电子邮件,用户名和密码 . 我正在使用Firebase Auth执行此操作 . 当我运行应用程序时,我可以注册并成功地在数据库中插入值,但只要新用户注册而不是创建新用户,数据库中的值就会被替换 . 如果我做错了,请帮忙 . 这是我的代码 .
firebaseAuth.createUserWithEmailAndPassword(email, password)
.addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
UserInformation userInformation = new UserInformation(username,password);
//checking if success
if(task.isSuccessful()){
databaseReference.child("users").setValue(userInformation);
Toast.makeText(MainActivity.this,"Successfully registered",Toast.LENGTH_LONG).show();
finish();
startActivity(new Intent(getApplicationContext(), ProfileActivity.class));
}else{
//display some message here
Toast.makeText(MainActivity.this,"Registration Error",Toast.LENGTH_LONG).show();
}
progressDialog.dismiss();
}
});
1 回答
这将取代现有数据 . 如果要将值添加为新子项,则需要使用
push()
,这将生成唯一ID,然后插入新数据 . 请尝试下面的代码 .