Firebase Firestore:如何构建数据

时间:2017-10-09 06:25:11

标签: java android firebase google-cloud-firestore

嗯,根据文档,这个答案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控制台中实现这种功能。

3 个答案:

答案 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