Firebase自动删除记录

时间:2019-08-26 13:23:36

标签: java android firebase firebase-realtime-database

当我尝试插入具有唯一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秒钟后,他删除了另一个孩子。

1 个答案:

答案 0 :(得分:1)

错误是:

mDatabase.child("users").child(userKey).child("pets").setValue(petKey);

尝试删除此行