Удалить данные строки из Firebase - PullRequest
0 голосов
/ 24 мая 2018

Я хочу удалить одну строку щелчка из Firebase в моей умной таблице.Я использую Angular 4.

Код смарт-таблицы:

<ng2-smart-table [settings]="settings" [source]="bicycleData"
 (deleteConfirm)="onDeleteConfirm($event)">
</ng2-smart-table>

Код компонента моего конструктора:

constructor(
    db: AngularFireDatabase, ) {
    this.bicyclesList = db.list('bicycle-list')
        .snapshotChanges()
        .map(changes => {
            return changes.map(c => ({
                    key: c.payload.key,
                    ...c.payload.val()
                }))
        });

    this.bicyclesList.subscribe((data) => {
        this.bicycleData = data;
    });
}

и код component.ts:

settings = {
    delete : {
        deleteButtonContent: '<i class="nb-trash"></i>',
        confirmDelete: true,
    },
}

Функция onDeleteConfirm () и функция deleteEnquiry в службе:

onDeleteConfirm(event) {
    console.log(event.data);
    if (window.confirm('Are you sure you want to delete?')) {
        this.deleteEnquiry(event.data);
        event.confirm.resolve();
    } else {
        event.confirm.reject();
    }
}

deleteEnquiry(data) {
    console.log(data.$key);
    this.db.list(`bicycle-list${data.$key}`).remove(data);
}

Но в консоли постоянно отображается следующая ошибка:

ERROR TypeError: Cannot read property 'list' of undefined

Как я могу исправить эту ошибку

1 Ответ

0 голосов
/ 24 мая 2018

Выглядит как ошибка в deleteEnquiry.

Согласно документам должно быть:

deleteEnquiry(data) {
  console.log(data.$key);
  this.db.list('bicycle-list').remove(data.$key);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...