Добавить свойство поля в документ в firebase - PullRequest
0 голосов
/ 06 ноября 2019

Я вызываю метод каждый раз, когда нажимается кнопка добавления. В этом методе я создаю новый документ для моей коллекции, который содержит заголовок и массив строк. Создание этого документа выполняется в моем методе путем вызова метода из моего сохраненного сервиса. Я хочу добавить последнее поле значения String в мой документ при нажатии кнопки «Завершить». Как я могу получить снимок текущего сохраненного идентификатора, чтобы добавить новый элемент? Я использую Angular и firestore

Эти кнопки расположены в component.html

<button type="button" class="btn btn-success" (click)="onSave()">Save</button>

<button type="button" class="btn btn-success" (click)="onComplete()">Complete</button>

OnSave и onComplete находятся в component.ts

onSave() {

    const btn = document.getElementById("addtopic");
    this.modalService.hide(1);

    // Get starting date
    this.startTopicTimestamp=  firebase.firestore.Timestamp.fromDate(new Date());
    console.log(`Starting time : ${this.startTopicTimestamp}`);

    btn.innerHTML = "End topic";
    btn.setAttribute('class', 'btn btn-danger');

    // New document creation
    this.savedService.savedDoc(this.topicTitle, this.myTags, this.startTopicTimestamp);
}


onComplete(){

    // Here we should get a snapshot of the current saved id
    // To make this function work
    this.savedService.addElement(this.saved.id)

}

Этот методчасть сохраненного сервиса

public savedDoc(title: string, tags: string[], date: Date): void {

    const savedFields = {
      title: title,
      startTime: date,
      tags: tags
    }

   this.db.collection('saved').add(savedFields);
}

1 Ответ

1 голос
/ 06 ноября 2019

В соответствии с этим ( Firestore - Как получить идентификатор документа после добавления документа в коллекцию ), вы можете просто сделать это:

public savedDoc(title: string, tags: string[], date: Date): void {

    const savedFields = {
      title: title,
      startTime: date,
      tags: tags
    }

   return this.db.collection('saved').add(savedFields).then(function(docRef) {
    return docRef.id;

});
}

Поскольку add возвращаетDocumentReference

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