【发布时间】:2017-04-21 11:36:38
【问题描述】:
我想将用户的个人资料图片存储在 Firebase 存储中。
我的 Firebase 数据库结构如下。
users
ㄴ KXkVAYQOV92tW27Wk0C
ㄴ uid: "EAGZwcgvgAcgErO7rfm7IHI91fk2"
ㄴ sex: "F"
ㄴ age: 24
ㄴ KXkVR1rc2riXyGFl69E
ㄴ uid: "alE4qM1vg2c9OrW5lVo7IvQk02Hv"
ㄴ sex: "M"
ㄴ age: 21
现在我想知道我的 Firebase 存储文件结构应该是怎样的。
想法 1:
images
ㄴ users
ㄴ EAGZwcgvgAcgErO7rfm7IHI91fk2
ㄴ profile.png
ㄴ something.png
ㄴ alE4qM1vg2c9OrW5lVo7IvQk02Hv
ㄴ profile.png
ㄴ something.png
想法 2:
images
ㄴ profile
ㄴ EAGZwcgvgAcgErO7rfm7IHI91fk2.png
ㄴ alE4qM1vg2c9OrW5lVo7IvQk02Hv.png
ㄴ something
ㄴ EAGZwcgvgAcgErO7rfm7IHI91fk2.png
ㄴ alE4qM1vg2c9OrW5lVo7IvQk02Hv.png
哪一项是 Firebase 存储在性能和可用性方面的最佳做法?
任何建议将不胜感激!
编辑:
正如 Lirianer 所说,数据库应如下所示。
users
ㄴ EAGZwcgvgAcgErO7rfm7IHI91fk2
ㄴ sex: "F"
ㄴ age: 24
ㄴ alE4qM1vg2c9OrW5lVo7IvQk02Hv
ㄴ sex: "M"
ㄴ age: 21
【问题讨论】:
-
我倾向于做的是你在“想法1”示例中所做的,这样我更容易记住路线。同样在数据库中,我会使用 uid 作为用户的键,并将配置文件图像的下载路径保存为字符串。
-
在我的例子中,我将图像存储在存储中,这些图像被分组在某个节点下,例如 Root->ImageGroup1。我将图像上传到存储并在 onSuccess() 中获取存储 URL。然后我使用表示图像的模型将结构写入数据库。该模型包含两个字段:图像的 URL 和用户的 UUID。我执行 push() 来创建一个密钥,然后 setValue(imageModel) 将其写入数据库。
-
@Lirianer 谢谢 Lirianer,我同意你的意见。
-
@Lucy 谢谢。这是有用的建议。
标签: firebase database-design firebase-realtime-database firebase-storage nosql