嗯,根据文档,这个答案https://stackoverflow.com/a/46639620/2873357,集合和文档应该改变。
我需要以这种方式构建数据:
"app" :{
"users" :{
"$uid" :{
"notifications":{
"auto-gen-id" :{
"notif-object":{
"type":"",
"subType" : ""
}
}
}
}
}
}
所以,据我所知,这是,
: "app (collections)/
users (document)/
$uid (collections)/
notifications (document)/
auto-gen-id (collections)/
"notif-object" (document)/
type (field),
subType (field)
我似乎无法在Firebase控制台中实现这种功能。
答案 0 :(得分:2)
如果我理解正确的话,那你要做的事情是不可能的。集合和文档交替的要求意味着您无法真正直接在集合中嵌套集合。使用$ uid作为集合来伪造它将不会最终运作良好。
因此,当没有实际文档放入集合时,通常的解决方案是命名一个您不打算创建的固定文档。例如,如果现在只有一个应用程序,请在路径中插入额外的“0”,应用程序名称或类似内容:
app/0/users/userId/notifications/{auto-gen-id}
在auto-gen-id通知文档中,您将拥有类型和子类型字段。
请注意,与Firebase不同,RTBD Firestore不是单个巨型JSON文档。集合中的每个文档都是JSON,但集合和文档的结构本身不是JSON。
答案 1 :(得分:0)
您拥有的第一个收藏品应该是用户而不是应用。 然后,Users Collection包含每个User Document,然后Document可以在其中包含Subcollection和Documents。
在根级别,您可以拥有多个集合。
您可以尝试坚持使用实际的数据结构,但最好重新安排一下以适应Firestore数据结构。
答案 2 :(得分:0)
你的路径应该是
User/UserId/Notifications/NotificationId/NotificationObject
请通过此链接找到Firebase团队的建议:https://artillery.io/docs/http-reference/#advanced-writing-custom-logic-in-javascript