Firebase实时数据库与存储

时间:2019-04-16 08:29:55

标签: android firebase firebase-realtime-database firebase-storage

我正在使用实时数据库存储我的用户个人资料。

每个配置文件可以包含多个房间,每个房间都包含自己的图片,从而创建了一个非常复杂的结构。

下面是一个示例:enter image description here

为了更轻松地将图片存储到相应的配置文件和空间,我将对象中的图片位图更改为字符串,然后再将对象解析为数据库,然后当我将对象取回时,将字符串转换为字符串回到位图。

我只是想知道这将来是否会带来任何降价成本。或者,如果这种实现是安全的,我们可以在数据库中放置更多数据。

2 个答案:

答案 0 :(得分:4)

保持当前数据库结构不变,就会遇到问题。

使用实时数据库和这种结构,每次您请求“用户/ SOME_ID”时,都将下载其下面的所有数据-包括序列化的图像。有关如何整理数据以免发生这种情况的信息,请咨询database structure guide

此外,我建议使用Cloud Storage for Firebase以其原始二进制格式存储图像,而不是序列化为Base64占用约30%以上的空间。与RTDB一样,如果将文件存储在“用户/ SOME_ID / roomImages / ROOM_ID / ...”或“ roomImages / ROOM_ID / ...”等结构化位置,则可以使用规则保护存储空间。

答案 1 :(得分:1)

我认为这不是安全且糟糕的实现,因为即使没有任何加密,您也将用户数据保存在第三方服务中,而不是将其存储在您可以完全控制的后端中。 如果我是您应用程序的用户,我会不喜欢它,但是如果该应用程序仅用于测试某些内容,那就没有问题。