我浏览了各种链接和解决方案delete-child-from firebase,How to remove child nodes并尝试在我的项目中使用,但是没有用。就像链接Deletion of child nodes一样,
DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
rootRef.child("calendario").child("-L7jrJ6DtQWrmZsC4zvT").removeValue();
它适用于没有生成密钥的情况,这不是我的情况。数据库结构在这里。
下面的一段代码用于删除我尝试过的单个孩子。 任何帮助表示赞赏。
delete.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
FirebaseDatabase ref = FirebaseDatabase.getInstance();
DatabaseReference myRef = ref.getReference("Students");
String key = myRef.push().getKey();
myRef.child(key).removeValue();
}
});
答案 0 :(得分:1)
使用push()
时,您将生成一个新的随机ID,然后在该密钥上使用removeValue()
时,将导致删除该密钥。
如果要删除数据库中的现有密钥,则需要从数据库中检索它,以便能够与removeValue()
一起使用。
答案 1 :(得分:1)
您不会删除任何内容,因为您只是在生成一个新密钥。如果要删除现有密钥,请使用以下代码行:
ref.getReference("Students").child("-LaFeagvdt-mLlc2eWeV").removeValue();
结果将是删除第二条记录。
答案 2 :(得分:0)
您需要将要删除的子项的键保留在某个变量中。假设它在变量keyToBeDeleted中。
String keyToBeDeleted = "-LaFeagvdt-mLlc2eWeV";
delete.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
FirebaseDatabase ref = FirebaseDatabase.getInstance();
DatabaseReference myRef = ref.getReference("Students/" + keyToBeDeleted);
myRef.removeValue();
}
});