繁体   English   中英

使用自定义子集合 ID 在 firestore 数据库中设置文档

[英]Setting a document in firestore database with a custom subcollection id

我正在为学生创建待办事项应用程序。 学生可以创建一个新项目,并在创建新项目时添加一些学生,用户会自动添加为创建的文档中的用户。

因此,在“项目”集合中创建了一个新文档,其中包含一些数据,例如项目名称和截止日期,..,并在子集合“用户”中创建了一个新文档。

目前我可以添加一个带有自定义 id 的新项目,以及一个带有自动生成 id 的用户。 但是我怎样才能给用户一个自定义 ID 呢? 因为在我当前的代码中,出现错误:

FirebaseError:无效的集合引用。 集合引用必须有奇数个段,但 projects/secondProject/users/Stefje123 有 4 个。

在文档中我可以看到这实际上是谷歌文档描述的方式..

任何人都可以帮助我吗?

我的function:

const createProject = async (e: any) => {
  const newName = document.querySelector<HTMLInputElement>('#newName')?.value;
  const newDate = document.querySelector<HTMLInputElement>('#newDate')?.value;
  const newDescription = document.querySelector<HTMLInputElement>('#newDescription')?.value;
  const username = auth.currentUser?.displayName;

  e.preventDefault();

  const project = await setDoc(doc(db, 'projects', newName), {
    Name: newName,
    Deadline: Timestamp.fromDate(new Date(newDate)),
    Description: newDescription,
  });

  const user = await addDoc(collection(db, 'projects', newName, 'users', username), {
    Name: auth.currentUser!.displayName,
    UID: auth.currentUser!.uid,
    Email: auth.currentUser!.email,
  });
};

你知道“奇数”的意思吗? 如果引用文档,则不能调用集合 function。 链接路径中的奇数段以集合为目标,而代码中的偶数段用于文档,但您使用的是集合 function。

文档参考:

doc(getFirestore(), "projects/someDoc/someCollection/nestedDoc")

收藏参考:

collection(getFirestore(), "projects/someDoc/someCollection")

错误的集合引用(路径中的段数不是奇数):

collection(getFirestore(), "projects/someDoc/someCollection/someDoc")

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM