Angular - Обновление до Firebase - PullRequest
0 голосов
/ 01 марта 2019

Я хотел бы обновить значения в моей форме.Проблема в том, что я не уверен, как получить ключ таблицы базы данных.У меня есть кнопка, которая при нажатии отображает значения в форме.Следующим шагом является внесение изменений, а затем нажмите кнопку «Обновить», чтобы сохранить их в Firebase.

Я сделал это, и это работает, но это определенно не решение, так как это вызывает проблемы на странице.

 <button *ngFor="let content of educates" id="updateBtn" class="btn btn-light" (click)="Update(content.key)" style="visibility: hidden">Update</button>

Как лучше всего получить ключ Firebase?

Мой компонент.ts

Update(key: string) {

    this.educateSrv.getAll();
    let _educate = new Educate();

    _educate.roles = this.Form.value.roles;
    _educate.widgets = this.Form.value.widgets;
    _educate.url = this.Form.value.url;
    _educate.title = this.Form.value.title;
    _educate.status = this.Form.value.uploadWhen;
    _educate.updatedBy = this.currentUser;
    let _date = new Date()
        .toDateString()
        .replace(/^\S+\s/, '');
    _educate.updatedAt = _date;

    this.educateSrv.Update(key, _educate);
}

Мой сервис.ts

Update(id: string, data:Educate) {
    return this.af.object("/educate/" + id).update(data);
}

Заранее спасибо.

1 Ответ

0 голосов
/ 02 марта 2019

Вы можете получить ключ, вернув его с данными:

data: any;

readData() {

   this.db.list('listname').snapshotChanges().pipe(map(list => {
       return list.map(items => {
         return {key: items.payload.key, ...items.payload.val()}
       })
    })).subscribe(data => {
       this.data = data;
       });

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