如何在Firebase Android中删除子节点?

36

我在我的Firebase数据库中有许多子节点,我想删除其中一个子节点。

Firebase firebase=new Firebase("..address..");

firebase.push().setValue(classObj);

//这里的classObj是一个类对象,它有一个用于获取和设置整数id的getter和setter方法

现在我已经推入了多个对象,我想根据classObj中的id仅删除一个对象

4个回答

81

删除数据:

firebase.child(id).removeValue();

顺便提一下,你最好查看一下Firebase Android文档,它涵盖了这个问题和许多其他主题。


通过使用 push,会生成一个随机的 id。那么在 firebase.child(id).removeValue() 中,你是如何获取这个 id 的呢? - Amit Jayant
这对我有用,但我必须先从DatabaseReference中删除.push()。 - Bob McNees
Push 返回一个数据库引用,您可以从中获取 key 来知道 id。 - Kushan
你可以按照这个答案获取推送键的值: https://dev59.com/cFoT5IYBdhLWcg3wvBek#38232280。之后就很简单了:firebase.child(pushKeyValue).removeValue()。 - Pamela Sillah
@Akhil removeValue 如何同时删除键和值? - Sreekanth Karumanaghat
1
Firebase 只在该路径上存在值时才存储路径。因此,删除一个值也将删除该值的键。实际上,如果删除一个值使您的 JSON 的整个分支为空,则会删除该整个分支。 - Frank van Puffelen

15

如果你正在使用 DatabaseReference 连接 Firebase

DatabaseReference dbNode = FirebaseDatabase.getInstance().getReference().getRoot().child("Node");

这里的Node代表你想要删除的子节点。

dbNode.setValue(null);

如果您正在使用dataSnapshot

例如,在处理某些数据更改事件时

dataSnapshot.getRef().setValue(null);

1
删除节点或子节点
private FirebaseDatabase database = FirebaseDatabase.getInstance();

database.getReference("root_node_name")
   .child("child_node_name")
   .removeValue();

删除子节点

database.getReference("root_node_name")
   .child("child_node_name")
   .child("sub_child_node_name")
   .removeValue();

如果不知道“child_node_name”,如何删除“sub_child_node_name” - Amit Ghosh

0
你需要运行这段代码:
 Firebase firebase=new Firebase(URL);
    firebase.child(id).removeValue();

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接