Получить документ с идентификатором firestore angular - PullRequest
0 голосов
/ 22 апреля 2020

Я попытался создать автоматический идентификатор документа в firestore и получить идентификатор документа в angular 8, используя следующий код, но я получаю идентификатор документа после завершения выполнения. Может ли кто-нибудь мне помочь? Заранее спасибо

        this.db.collection("testdata2").add({
        "name": "Tokyo",
        "country": "Japan",
        "Date": this.date
        })
        .then(function(docRef){ 

          component.docid=docRef.id;
          console.log("Document written with ID: ", docRef.id); 

        })
        .catch(function(error) {
          console.error("Error adding document: ", error);
        });
        console.log(component.docid);

1 Ответ

0 голосов
/ 23 апреля 2020

Таким образом, вы используете обещания, что означает, что обратные вызовы в then и catch будут вызываться после всего остального - в этом случае они будут фактически вызываться после окончательного console.log(component.docid). Если вы можете указать свой метод как async (см. MDN для asyn c function ), тогда вам будет легче рассуждать об этом. Переписав код, выглядело бы так:

try {
    const docRef = await this.db.collection("testdata2").add({
        "name": "Tokyo",
        "country": "Japan",
        "Date": this.date
    });

    component.docid = docRef.id;
    console.log("Document written with ID: ", docRef.id); 
} catch (error) {
    console.error("Error adding document: ", error);
}
console.log(component.docid);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...