Как Angularfire2 удалить() по некоторому ключевому значению

Я пытаюсь удалить комментарии определенного порядка потоков по некоторому значению ключа (sid).

eComments
 0b4080bb4e686f003aaa340f8ed2e2a6
   cid: "0b4080bb4e686f003aaa340f8ed2e2a6"
   comment: "Prison Break revolves around two brothers: one ..."
   createdAt: 1487250871623
   rating: 0
   sid: "c088239a29827946f932f73c9a1d495a"
   uid: "SFmtrI0ta5PsqYkgqZuJo2"
   updatedAt: 1487250871623

4bde9de83ac2bb6d06df9876c2294483addclose
   cid: "4bde9de83ac2bb6d06df9876c2294483"
   comment: "arrives at the jail, he meets the prison denize..."
   createdAt: 1487251466761
   rating: 0
   sid: "e8c2d3c2aaf877fcdf0c103229645981"
   uid: "SFmtrI0ta5PsqYkgqZuJo2E"
   updatedAt: 1487251466761

Скажем, я хотел удалить sid: "c088239a29827946f932f73c9a1d495a" Я пробовал это, но, к сожалению, он удаляет всю базу данных eComments

const commentList = this.af.database.list('/eComments', {
      query: {
        orderByChild: 'sid',
        equalTo: sid
      }
    });
commentList.remove();

В любом случае я могу удалить по значению ключа?


person LearnToday    schedule 16.02.2017    source источник


Ответы (1)


Это один из способов:

const commentList = this.af.database.list('/eComments', {
      preserveSnapshot: true,
      query: {
        orderByChild: 'sid',
        equalTo: sid
      }
    });
commentList.subscribe(snapshots=>{
    snapshots.forEach(snapshot => {
      snapshot.ref.remove();
    });
})

Я не эксперт AngularFire2, поэтому могут быть более простые/идиоматические способы.

person Frank van Puffelen    schedule 16.02.2017
comment
Работает отлично! Спасибо. - person LearnToday; 16.02.2017
comment
Я использовал почти так же, как вы показали. Но как только я удаляю таким образом, я не могу добавить тот же элемент обратно. :| Не понимаю, что именно я делаю неправильно :( - person webcoder; 12.08.2017