如何从对象中获取 FireStore 文档 ID?

Posted

技术标签:

【中文标题】如何从对象中获取 FireStore 文档 ID?【英文标题】:How do i get a FireStore document ID from an object? 【发布时间】:2021-11-27 19:02:49 【问题描述】:

我正在尝试引用自动生成的 Firestore 文档 ID,以便我可以在其中创建子集合。

问题是,虽然我能够找到该文档 ID,但我似乎无法将其保存到可用的变量中。

在这里,我正在获取当前用户的特定文档。其中userDocs 中包含该文档 ID。 (getCollection 是我调用的可组合)

const  documents: userDocs  = getCollection("userData", [
      "userId",
      "==",
      user.value.uid,
    ]);

每当我执行console.log(userDocs) 时,我都会得到这个包含所有文档信息的对象,包括文档id

screenshot

但是,当我尝试深入研究对象以获取 ID,例如 userDocs.valueuserDocs.id 等,它只会返回 undefined

如果我像这样在 html 中运行 v-for

<div v-for="docs in userDocs" :key="docs.id">
   <h1> docs.id </h1>
</div>

在网页上吐出文档id没问题。

我正在尝试在此处注入该文档 ID,以便可以将 firebase 中的子集合添加到此特定用户文档。

const addNew = async (plant) => 
      const userPlant = 
        plant: plant,
        planted: tempPlanted,
      ;
      const res = await projectFirestore
        .collection("userData")
        .doc(userDocs)  <--------HERE
        .collection("plants")
        .add(userPlant);
    ;

任何帮助将不胜感激。

【问题讨论】:

从哪里调用addNew?你能从那里传递用户 ID 吗? addNew 只是绑定到提交按钮上的@click 事件。所以当我点击提交时,它会运行这个 addNew 功能 【参考方案1】:
    userDocsaddNew 内部未定义。 userDocs 是一个对象,而不是单个值。

【讨论】:

以上是关于如何从对象中获取 FireStore 文档 ID?的主要内容,如果未能解决你的问题,请参考以下文章

如何按文档 ID 从 Firebase Firestore 获取数据 - iOS?

如何从 Firestore 文档中获取自定义对象的 ArrayList? [复制]

如何从 Cloud Firestore 中获取数据,其中 user.uid 等于 Flutter 中的文档 ID?

Swift - 从随机创建的文档 ID 中获取字段(Firestore)

获取文档后从 Firestore 获取文档 ID

如何在 swift iOS Firestore 中获取单元格文档 ID?