Как убрать все из child в firebase без конкретного дочернего элемента? - PullRequest
0 голосов
/ 24 июня 2018

Я хочу удалить все из дочерних «UserRequests» в базе данных, но оставить его для конкретного дочернего «DoNotRemove»:

databaseReference.child("UserRequests").removeValue();

Мне действительно нужно сделать это, или другие варианты будут заключаться в том, чтобы получить только один дочерний элемент из «UserRequests», который не является «DoNotRemove», сделать то, что мне нужно, и затем удалить его ИЛИ получить только один дочерний элемент из « UserRequests "имеющий дочерний" псевдоним "(потому что у" DoNotRemove "нет дочернего), сделайте то, что я должен с ним сделать, а затем удалите его.

http://oi65.tinypic.com/15xspxe.jpg

В основном я должен удалить все из «UserRequests», кроме дочернего «DoNotRemove» ИЛИ получить ТОЛЬКО одного дочернего элемента из «UserRequests», но не «DoNotRemove».

1 Ответ

0 голосов
/ 24 июня 2018

Примерно так должно работать:

DatabaseReference ref = FirebaseDatabase.getInstance().getReference("UserRequests");
Query query = ref.orderByChild("Nickname").startAt(" "); // space it the first printable character

query.addChildEventListener(new ChildEventListener() {
    @Override
    public void onChildAdded(DataSnapshot dataSnapshot, String previousChildName) {
        dataSnapshot.getRef().removeValue();
    }
    ...

Таким образом, все дочерние узлы в UserRequests получат свойство Nickname. Поскольку пробел является первым печатаемым символом, он возвращает каждый узел с таким свойством. Он пропускает ваш DoNotRemove узел, у которого нет свойства Nickname.

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