使用 firestore 生成我们自己的 id 文档

时间:2021-04-17 12:14:09

标签: javascript firebase google-cloud-firestore

如何选择我要使用的 id 文档:

firebase.firestore().collection("Users").doc(firebase.auth().currentUser.uid).collection("tasks").add({task:task.taskname,category:task.category})

这里,我创建了一个随机id的文档,但我想选择一个(我的意思是收集任务中文档的id)

2 个答案:

答案 0 :(得分:0)

someCollectionRef.add(/* data */)someCollectionRef.doc().set(/* data */) 的别名。

所以要指定自己的 ID,只需使用:

yourCollectionRef.doc(/* your id */).set(/* your data */);
firebase.firestore()
  .collection("Users")
  .doc(firebase.auth().currentUser.uid)
  .collection("tasks")
  .doc(/* your custom ID here */)
  .set({
    task: task.taskname,
    category: task.category
  })
  .then(() => console.log('success!'))
  .catch((err) => console.error('failed to set doc data!', err));

要将文档 ID 放置在文档中,您可以将此链拆分为两部分,如下所示。除非您打算使用 Collection Group queries,否则您可以使用 FieldPath.documentId() 通过 ID 查询文档,而无需将其存储在文档中。

const myTaskDocRef = firebase.firestore()
  .collection("Users")
  .doc(firebase.auth().currentUser.uid)
  .collection("tasks")
  .doc(/* your custom ID here */);

myTaskDocRef
  .set({
    id: myTaskDocRef.id,
    task: task.taskname,
    category: task.category
  })
  .then(() => console.log('success!'))
  .catch((err) => console.error('failed to set doc data!', err));

答案 1 :(得分:0)

使用 .add() 添加文档返回文档引用对象

因此使用文档 here 中的以下代码,这是您想要的代码:

// Add a new document with a generated id.
db.collection("cities").add({
    name: "Tokyo",
    country: "Japan"
})
.then((docRef) => {
    console.log("Document written with ID: ", docRef.id);
})
.catch((error) => {
    console.error("Error adding document: ", error);
});

docRef.id 保存您添加的文档的 ID。