[英]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.