【问题标题】:How to remove child nodes in firebase android?如何删除firebase android中的子节点?
【发布时间】:2016-07-11 04:24:30
【问题描述】:

我的 firebase 数据库中有许多子节点,我只想删除一个子节点。

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

firebase.push().setValue(classObj);

//这里的classObj是一个类对象,它有一个整数id的getter和setter

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

【问题讨论】:

    标签: android firebase firebase-realtime-database


    【解决方案1】:

    要删除数据:

    firebase.child(id).removeValue();
    

    顺便说一句,您最好看看适用于 Android 的 Firebase 文档,其中涵盖了这个主题以及更多主题。

    【讨论】:

    • 通过push,生成一个随机id。那么你是如何获得 firebase.child(id).removeValue() 中的 id 的呢?
    • 这对我有用,但我必须先从 DatabaseReference 中删除 .push()。
    • Push 返回一个数据库引用,你可以从中获取key来知道id
    • 您可以在此答案后获取推送键的值:stackoverflow.com/a/38232280/5572246。然后它很简单:firebase.child(pushKeyValue).removeValue()
    • Firebase 仅在路径存在值时才存储该路径。所以删除一个值,也将删除该值的键。事实上,如果删除一个值会使 JSON 的整个分支为空,它将删除整个分支。
    【解决方案2】:

    如果您将 DatabaseReference 用于 firebase

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

    这里的节点代表你要删除的孩子

    dbNode.setValue(null);
    

    如果您使用的是数据快照

    即,当您处理一些数据更改事件时

    dataSnapshot.getRef().setValue(null);
    

    【讨论】:

      【解决方案3】:

      移除节点或子节点

      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”
      【解决方案4】:

      你需要运行这段代码:

       Firebase firebase=new Firebase(URL);
          firebase.child(id).removeValue();
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2018-07-18
        • 2016-10-31
        • 1970-01-01
        • 1970-01-01
        • 2020-01-29
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多