【问题标题】:Delete child from firebase [duplicate]从firebase中删除孩子[重复]
【发布时间】:2018-03-08 22:59:07
【问题描述】:

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

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

如何删除“mockChild”?

【问题讨论】:

    标签: android firebase


    【解决方案1】:
    ref.child("mockChild").removeValue();
    

    添加孩子的代码 - 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 的整个引用。

    【讨论】:

    • 在这种情况下它不只是删除 "" 的值,我想删除整个孩子。
    • 它应该删除值,当值被删除时,键将随之删除:)
    • 你确定当值被移除时,键也会被移除?因为该方法在内部所做的是将一个空对象设置为该值。
    • 编辑了我的答案,所以你可以看到会发生什么,如果值已被删除,它会删除键
    • 随机值,因为没有指定任何东西,如果你想指定一些你需要添加另一个孩子的东西。 ref.child("mockChild").child("这里的键名").setValue("值");
    【解决方案2】:

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

    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 包含的所有内容。

    【讨论】:

    • 我不想改变孩子的值,我想自己删除孩子。
    • 我不改变值。我刚刚向您展示了如何使用setValue() 方法设置一个值,然后如何使用removeValue() 方法删除相同的值。它有效吗?您只需要在引用中直接使用removeValue()
    • 另请参阅我的更新答案。
    猜你喜欢
    • 1970-01-01
    • 2018-08-19
    • 1970-01-01
    • 1970-01-01
    • 2018-08-27
    • 1970-01-01
    • 2018-01-25
    • 2019-08-08
    • 1970-01-01
    相关资源
    最近更新 更多