Как убрать из firebase? - PullRequest
       6

Как убрать из firebase?

1 голос
/ 16 апреля 2020

getReference ("Посты"). child (postKey) .child ("date"), где дата записана в "date" (которая будет в будущем, например, 30 апреля 2020 года в формате String). Я хочу написать программу, которая будет проходить "Post", чтобы получить всю дату, а если текущая дата и дата из "Post" (currentDate == date ("Post")), то удалить этот пост. Как получить все из списка для сравнения?

enter image description here

Я добавил код, куда добавляю «Пост». Я получаю дату из calendarView, так что удобно она написана на русском языке

private void deletePostFromFirebase(){
    SimpleDateFormat simpleDateFormat = new SimpleDateFormat("dd MMM yyyy", Locale.ENGLISH);
    Date date = new Date();
    String newDate = simpleDateFormat.format(date);
    DatabaseReference ref = FirebaseDatabase.getInstance().getReference("Posts");
    ref.orderByChild("date").equalTo(newDate).addListenerForSingleValueEvent(new ValueEventListener() {
        @Override
        public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
            for (DataSnapshot itemSnapshot: dataSnapshot.getChildren()) {
                itemSnapshot.getRef().removeValue();
            }
        }

        @Override
        public void onCancelled(@NonNull DatabaseError databaseError) {
            throw databaseError.toException();
        }
    });
}

1 Ответ

1 голос
/ 16 апреля 2020

Если вы хотите удалить дату в соответствии с условием, то вы можете сделать следующее:

DatabaseReference ref = FirebaseDatabase.getInstance().getReference("Posts");
ref.orderByChild("date").equalTo(date).addListenerForSingleValueEvent(new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {
          for(DataSnapshot ds : dataSnapshot.getChildren()){
            String key = ds.getKey();
            ref.child(key).child("date").removeValue();
          }
        }

        @Override
        public void onCancelled(DatabaseError databaseError) {

        }
    });

Выполнить запрос orderByChild("date").equalTo(date), затем вы можете повторить и получить key и удалить ребенок date.

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