firebase数据库结构的好方法,以便获得按日期排序的数据库?

时间:2018-09-02 11:55:43

标签: ios swift image firebase firebase-realtime-database

我正在使用firebase并制作一个应用程序,使用户可以保存6个人资料图片。

现在,我已经准备了6个imageView,用户可以通过点击每个imageView来简单地添加其图像。

enter image description here

我想将图像保存到Firebase存储并将URL下载到Firebase数据库。从技术上讲,我可以保存它,但不确定如何构造数据库和图像文件名。

当前,我使用Dateformatter命名了图像文件(例如“ yyyy-MM-dd''HH:mm:ss” .jpg) 并将下载URL设置为数据库 “ yyyy-MM-dd''HH:mm:ss”:“ downloadURL”

数据库结构如下:

"User" : { 
  “user’s uid” : { 
    "ImgURLs” : { 
      "2018-09-02_21:59:80" : “(here is the url)”, 
      "2018-09-02_22:05:72" : "(here is another url)", 
      "2018-09-02_23:49:54” : "(here is another url)" 
    }, 
  } 
}

但是以这种方式,我不知道如何相应地检索这6个Imageview的数据。

如果我的问题有道理的话,是否有实施的机会。

1 个答案:

答案 0 :(得分:1)

更改网址的存储方式应提供答案

users :
  uid :
    userName: "some name"
    ImgURLs :
       -Jiokoisd094k //key created with childByAutoId
           url : “(here is the url)”
           timestamp : "2018-09-02_21:59:80"
       -k0k4000od0if //key created with childByAutoId
           url : "(here is another url)"
           timestamp : "2018-09-02_22:05:72"

有了这个,只要您知道用户的uid,就可以在users / uid / ImgURLs访问他们的图像URL。这也使您可以存储时间戳和有关每个图像的其他信息。可能是一个带有标题的子节点:每个子节点中的“ Dang,您看起来很好”。

根据用例,如果您需要查询那些节点,则最好对数据进行非规范化并将其存储在单独的节点中

users :
   uid :
      userName: "some name"

urls  :
   uid :
      -Jiokoisd094k //key created with childByAutoId
         url : “(here is the url)”
         timestamp : "2018-09-02_21:59:80"
      -k0k4000od0if //key created with childByAutoId
         url : "(here is another url)"
         timestamp : "2018-09-02_22:05:72"