我似乎在Firestore文档中找不到答案,但是如果我想在Angular 6应用程序中做到这一点,那么简单
firebase.firestore().collection(`fb_ad_accounts`).doc(`${adAccountId}/${id}`).set({
name: name,
id: id,
date_created: new Date().getTime()
})
我看到一条错误消息
Error: Uncaught (in promise): FirebaseError: [code=invalid-argument]: Invalid document reference. Document references must have an even number of segments, but fb_ad_accounts/779737999495825/249155905774166 has 3
我想像这样构建数据,但是我不知道如何对像add()
的树进行简单的fb_ad_accounts/<account_id>/<ad_account_id>
我在这里缺少明显的东西吗?
谢谢!
答案 0 :(得分:1)
在Firestore中,文档只能包含带有值的字段。一个文档不能包含其他文档。
文档的子集合可能组织在子集合下(每个子集合都有自己的文档),但是从技术上讲,这些子集合并不包含在文档本身中。
错误消息本质上是在提醒您这些事实,但是以某种数学方式。
如果您希望一个文档在另一个文档中显示为“嵌套”,则必须选择将在其中出现的子集合的名称。例如:
fb_ad_accounts/<account_id>/ads/<ad_account_id>
请注意,“ ads”子集合出现在文档下方。从数学上讲,这是文档的有效路径,因为它具有偶数个路径分量(4)。