【问题标题】:Firebase Delete All Node Based on a Particular Value in AndroidFirebase根据Android中的特定值删除所有节点
【发布时间】:2020-02-28 22:19:22
【问题描述】:

我有以下 Firebase 数据库结构。我需要根据特定的子值匹配删除所有节点。

我已经编写了下面的代码,我将子 dp 值保存在 ref 变量中,然后添加了一个 SingleValueEvent 侦听器并基于尝试删除的快照,但无论子值如何,它都会删除所有节点

 mDatabase= FirebaseDatabase.getInstance().getReference("my_reference");

 mDatabase.orderByChild("dP").equalTo(ref).addListenerForSingleValueEvent(new ValueEventListener() {

 @Override
 public void onDataChange(DataSnapshot dataSnapshot) {

     for (DataSnapshot datas : dataSnapshot.getChildren()) {

     mDatabase.child(dataSnapshot.getKey()).removeValue();

     }
 }

 @Override
 public void onCancelled(DatabaseError databaseError) {

   }
 });

【问题讨论】:

  • mDatabase.child(dataSnapshot.getKey()).child("name").removeValue(); mDatabase.child(dataSnapshot.getKey()).child("dp").removeValue(); 为所有五个孩子做

标签: android firebase-realtime-database


【解决方案1】:

现在你正在删除:

 mDatabase.child(dataSnapshot.getKey()).removeValue();

如果您在此处解析路径,您会发现删除整个节点是有意义的。你想要的是:

public void onDataChange(DataSnapshot dataSnapshot) {

  for (DataSnapshot datas : dataSnapshot.getChildren()) {

    datas.getRef().removeValue();

  }
}

【讨论】:

    猜你喜欢
    • 2018-07-16
    • 2017-03-19
    • 1970-01-01
    • 1970-01-01
    • 2018-06-02
    • 2012-01-26
    • 1970-01-01
    • 2020-01-29
    • 2022-08-19
    相关资源
    最近更新 更多