2017-02-16 5 views
0

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

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(); 

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

ответ

0

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

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

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

+0

Работает отлично! Благодарю. –

+0

Я использовал почти тот же способ, который вы показали. Но как только я удалю таким образом, я не смогу добавить тот же элемент назад. : | Не получается, что именно т делает неправильно :( – webcoder

Смежные вопросы