首页 > 解决方案 > 如何从对象中获取 FireStore 文档 ID?

问题描述

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

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

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

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

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

截屏

但是,当我尝试深入研究对象以使用userDocs.valueoruserDocs.id等​​获取 ID 时,它只会返回undefined.

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

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

任何帮助,将不胜感激。

标签: javascriptfirebasevue.jsgoogle-cloud-firestorevuejs3

解决方案


  1. userDocs内部未定义addNew
  2. userDocs是一个对象,而不是单个值。

推荐阅读