【问题标题】:generate our own id document with firestore [duplicate]使用firestore生成我们自己的id文件[重复]
【发布时间】:2021-07-12 05:40:42
【问题描述】:

如何选择我要使用的身份证件:

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

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

【问题讨论】:

    标签: javascript firebase google-cloud-firestore


    【解决方案1】:

    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));
    

    【讨论】:

    • 谢谢!而如果我想在这个文档中使用文档的id,可以吗?例如,对于 id 文档 X,我使用另一个归档的“id”,它等于 X
    • @user123456 查看更新的答案
    【解决方案2】:

    使用 .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。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-11-28
      • 2015-07-29
      • 1970-01-01
      • 2020-05-05
      • 2012-10-30
      • 2021-11-28
      相关资源
      最近更新 更多