如何获取Firestore文档的自动生成的ID?

时间:2020-04-28 15:12:20

标签: javascript node.js firebase google-cloud-firestore

我在创建文档时使用自动生成的ID。 设置好之后,我需要得到它。

await admin.firestore().collection("mycollection").doc().set(mydata)  
    .then(doc => {

        console.log(doc.id);

        return true;
     })
     .catch(err => {
         return false;
     });

日志中检索到的ID与Firestore数据库中的ID不同。我不明白为什么。

1 个答案:

答案 0 :(得分:3)

日志中检索到的ID与Firestore中的ID不同 数据库。

这是正常现象,因为set()方法返回一个Promise<void>(即,一个可解决undefined的Promise)。因此,由于doc.idthen(),因此您无法在传递给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) {
  //...
}