我在创建文档时使用自动生成的ID。 设置好之后,我需要得到它。
await admin.firestore().collection("mycollection").doc().set(mydata)
.then(doc => {
console.log(doc.id);
return true;
})
.catch(err => {
return false;
});
日志中检索到的ID与Firestore数据库中的ID不同。我不明白为什么。
答案 0 :(得分:3)
日志中检索到的ID与Firestore中的ID不同 数据库。
这是正常现象,因为set()
方法返回一个Promise<void>
(即,一个可解决undefined
的Promise)。因此,由于doc.id
是then()
,因此您无法在传递给doc
方法的回调函数中执行undefined
。
您应该执行以下操作:
try {
const docRef = admin.firestore().collection("mycollection").doc();
const docId = docRef.id; //Here you have the value of the id (independently of the fact you call set() later or not)
await docRef.set(mydata);
} catch(err) {
//...
}