Firebase Удалить все узлы на основе определенного значения в Android - PullRequest
0 голосов
/ 28 февраля 2020

У меня ниже Структура базы данных Firebase. Мне нужно удалить все узлы на основе определенного соответствия дочернего значения.

enter image description here

Я написал ниже код, где я сохраняю дочерний элемент 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) {

   }
 });

1 Ответ

1 голос
/ 28 февраля 2020

Прямо сейчас вы удаляете с помощью:

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

Если вы проанализируете путь здесь, вы увидите, что имеет смысл удалить весь узел. То, что вы хотите:

public void onDataChange(DataSnapshot dataSnapshot) {

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

    datas.getRef().removeValue();

  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...