Firebase数据库设计

时间:2016-09-21 22:18:54

标签: firebase firebase-realtime-database

我有一个包含类似于下图所示结构的数据库。由于我不允许公开,我使用以下密钥:

  1. i = {0,1,2,3 ....}
  2. 所有a(i)代表单个键/值配对,例如userName: "awesome"
  3. 使用以下结构,每次User想要创建新Stuff这些都是我目前采取的步骤

    1. 将图片存储到FIRStorage并检索各自的downloadURL
    2. 然后我将Stuff添加到FIRDatabase。此时,我添加了与a(i)相关的所有信息,因为它们都属于一个孩子; Stuff.UUID,因此我发送了一个由数据组成的大字典。
    3. 在向迷你词典添加数据时出现了问题。因为它们处于不同的路径,我必须单独向所有这些路径发出请求,如下所示

      1. 然后我添加location信息
      2. timeStamp
      3. 的相应子女跟随
      4. 接下来要更新images信息
      5. User订阅到相应的Stuff.UUID
      6. 最后将User.UUID添加到Stuff
      7. 的成员部分

        是否可以减少步骤3-7?

        作为跟进,是否可以通过一次调用将值添加到不同的路径中?

        PS: Link上面演示的代码可能是什么样子。由于机密性原因,我不允许发布实际代码。

        {
           "Users":
           {
             "JglJnGDXcqLq6m844pZ":
             {
                a(0),
                a(1),
                a(2),
                a(3),
                a(4),
                a(5),
        
                "Stuff":
                {
                   "fcWpzduhpPn8XR6Zqca": true,
                   "gfntTr6TkDwZ439jkW8": true
                }
              }
            },
        
           "Stuff":
           {
              "fcWpzduhpPn8XR6Zqca":
              {
                 a(0),
                 a(1),
                 a(2),
                 a(3),
                 a(4),
                 a(5),
                 a(6),
                 a(7),
        
                 "location":
                 {
                    "latitude":"-17.41439",
                    "longitude":"-5.85170"
                 },
        
                 "timestamp":
                 {
                    "created":
                    {
                       a(0),
                       a(1),
                       a(2),
                       a(3),
                       a(4),
                       a(5),
                     },
                     "lastModified":
                     {
                       a(0),
                       a(1),
                       a(2),
                       a(3),
                       a(4),
                       a(5),
                     }
                  },
                  "images":
                  {
                     "B4FaR6wfJAeXqJ29T33":
                     {
                       "imageURL": "https://google.com"
                     }
                  },
                  "members":
                  {
                     "JglJnGDXcqLq6m844pZ": true,
                     "DpHAfrqL4eqbR8QNgHg": true
                  }
               }
            }
         }
        

0 个答案:

没有答案