Как удалить узел в Firebase Android - PullRequest
0 голосов
/ 05 октября 2018

Здравствуйте, как я могу удалить узел в базе данных fire_base, используя Java?Я попробовал этот метод, но он не работал.На этом рисунке показана структура узла структура узла

private void deleteTask (final String userName){

    final DatabaseReference reference = FirebaseDatabase.getInstance().getReference("All_USER");
    reference.orderByChild("userName").equalTo(userName).addListenerForSingleValueEvent(new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {
            for(DataSnapshot ds :dataSnapshot.getChildren()){
                String userName = (String) ds.child("userName").getValue();
                reference.child(userName).setValue(null);
            }
        }

        @Override
        public void onCancelled(@NonNull DatabaseError databaseError) {

        }


    });
}

Ответы [ 3 ]

0 голосов
/ 05 октября 2018

этот код работает для меня

  private void deleteTask (final String userName){

    final DatabaseReference reference = FirebaseDatabase.getInstance().getReference("All_USER");
    reference.addListenerForSingleValueEvent(new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {
            for(DataSnapshot ds :dataSnapshot.getChildren()){
                if(ds.child("NewUser").child("userName").getValue(String.class).equals(userName)){
                    ds.child("NewUser").child("userName").getRef().removeValue();
                }
            }
        }

        @Override
        public void onCancelled(@NonNull DatabaseError databaseError) {

        }


    });
}
0 голосов
/ 31 января 2019

Вы можете просто изменить свой код следующим образом:

 @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
         if (dataSnapshot.exists()) {
                        for (snapshot in dataSnapshot.children) {
                            snapshot.reference.removeValue()

                        }
                    }
    }
0 голосов
/ 05 октября 2018

Попробуйте этот код:

private void deleteTask (final String userName){

final DatabaseReference reference = FirebaseDatabase.getInstance().getReference("All_USER");
reference.addListenerForSingleValueEvent(new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
        for(DataSnapshot ds :dataSnapshot.getChildren()){
            ds.getRef().orderByChild("userName").equalTo(userName).removeValue();
        }
    }

    @Override
    public void onCancelled(@NonNull DatabaseError databaseError) {

    }


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