我正在尝试将数据插入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();
}
});
答案 0 :(得分:3)
databaseReference.child("users").setValue(userInformation)
这将取代现有数据。如果要将值添加为新子项,则需要使用push()
,这将生成唯一ID,然后插入新数据。请尝试下面的代码。
databaseReference.child("users").push().setValue(userInformation)
答案 1 :(得分:0)
使用此查询。肯定会为您开始工作。
FirebaseDatabase.getInstance().getReference("users").child(user.getUid()).setValue(user);