当我尝试插入具有唯一ID的新孩子时,Firebase会自动删除前一个孩子。
这是我的数据库结构:
{
"users" : {
"EIG2NaC4Y2S5GCbeaKUdpkJgtvp2" : {
"email" : "user@gmail.com",
"mobile" : "79234792387",
"name" : "User",
"pets" : {
"-LnD1RPwaDILobsUxARh" : {
"name" : "PetName",
"pet_family" : "Dog"
}
}
}
}
}
这是在宠物下插入新孩子的方法:
public void addPet() {
final String petname = petName.getText().toString();
final String petfamily = petFamily.getSelectedItem().toString();
addPetButton.setEnabled(false);
final ProgressDialog progressDialog = new ProgressDialog(AddPetActivity.this, R.style.AppTheme_Dark_Dialog);
progressDialog.setIndeterminate(true);
progressDialog.setMessage("Adding "+petname+"...");
progressDialog.show();
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
FirebaseUser user = mAuth.getCurrentUser();
String userKey = user.getUid();
String petKey = mDatabase.child("users").child(userKey).child("pets").push().getKey();
mDatabase.child("users").child(userKey).child("pets").setValue(petKey);
mDatabase.child("users").child(userKey).child("pets").child(petKey).child("name").setValue(petname);
mDatabase.child("users").child(userKey).child("pets").child(petKey).child("pet_family").setValue(petfamily);
progressDialog.dismiss();
Intent intent = new Intent(getApplicationContext(), NavActivity.class);
intent.putExtra("calling-activity","AddPetActivity");
startActivityForResult(intent, 0);
}
}, 3000);
}
当我执行代码时,Firebase创建了一个新孩子,但是2秒钟后,他删除了另一个孩子。
答案 0 :(得分:1)
错误是:
mDatabase.child("users").child(userKey).child("pets").setValue(petKey);
尝试删除此行