Android 从firebase中删除子项

Android 从firebase中删除子项,android,firebase,Android,Firebase,我使用以下代码在FireBase中添加一个子项并为其设置一个值 String ref = Constants.Client+"/"+Constants.firebaseProjects+"/"+Constants.ProjectName+"/xyz"; final DatabaseReference ref = FirebaseDatabase.getInstance().getReference(FirebaseRefer); ref.child("mockChild").push().

我使用以下代码在FireBase中添加一个子项并为其设置一个值

 String ref = Constants.Client+"/"+Constants.firebaseProjects+"/"+Constants.ProjectName+"/xyz";
 final DatabaseReference ref = FirebaseDatabase.getInstance().getReference(FirebaseRefer);
 ref.child("mockChild").push().setValue("")
如何删除“mockChild”

添加子对象的代码-ref.child(“mockChild”).push().setValue(“Hello”)

删除子项的代码-ref.child(“mockChild”).removeValue()

让我们以用户数据库为例:

ref.child("Users").child("User1").setvalue("User 1");
ref.child("Users").child("User2").setvalue("User 2");
ref.child("Users").child("User3").setvalue("User 3");
现在,如果要从数据库中删除特定用户,则必须使用以下代码:

ref.child("Users").child("User2").removeValue();

由于firebase是一个键值数据库,它将从User2中删除该值,也将删除该键,因为该键不能单独存在。这将从数据库中删除对User2的全部引用。

要解决此问题,请使用以下代码:

String key = ref.child("mockChild").push().getKey();
ref.child("mockChild").child(key).setValue("yourValue");
ref.child("mockChild").child(key).removeValue(); // This is how you remove it
或者您可以使用:

ref.child("mockChild").child(key).setValue(null);
它也被接受,这意味着当您为Firebase的属性/路径指定空值时,您表示希望删除属性或路径

如果要删除整个子项,只需使用:

ref.child("mockChild").removeValue();

注意,它将删除
mockChild
包含的所有内容。

在本例中,它是否会删除“”的值,我想删除整个子项。它应该删除该值,当删除该值时,该键将与其一起删除:)您确定删除该值时,该键将被删除吗?因为该方法在内部的作用是将null对象设置为该值。编辑了我的答案,这样您就可以看到发生了什么,如果值已被删除,它会删除该键随机值,因为没有指定任何内容,如果您要指定某个内容,则需要添加另一个子项。ref.child(“mockChild”).child(“此处的键名”).setValue(“值”);我不想更改子项中的值,我想删除子项本身。我不更改值。我刚才演示了如何使用
setValue()
方法设置值,然后使用
removeValue()
方法删除相同的值。它有用吗?您只需直接使用
removeValue()
即可访问参考。请参阅我的更新答案。
ref.child("mockChild").removeValue();