概要
Cloud Firestoreにドキュメントを追加したときに自動生成されるIDを受け取る方法
困ったこと
公式ドキュメントのサンプルでは、ドキュメントを追加したあとにidをconsoleに出力するだけで、そのidをその後の処理に使う感じがなかった。
// Add a new document with a generated id.
db.collection("cities").add({
name: "Tokyo",
country: "Japan"
})
.then(function(docRef) {
console.log("Document written with ID: ", docRef.id);
})
.catch(function(error) {
console.error("Error adding document: ", error);
});
自分のes6の理解が薄いためか無理くり外部変数に突っ込もうとしたが動かない(vuejsのdataに入れたかった)
.then(function(docRef) {
console.log("Document written with ID: ", docRef.id);
this.docId = docRef.id
})
エラーになる
firestore Error adding document: TypeError: Cannot set property 'docId' of undefined
やり方
メソッドをasyncで定義して、awaitで待ち構えるとできたっ.
async add() {
let docRef = await db.collection("cities").add({
name: "Tokyo",
country: "Japan"
})
this.docId = docRef.id
}