我正在使用实时数据库存储我的用户个人资料。
每个配置文件可以包含多个房间,每个房间都包含自己的图片,从而创建了一个非常复杂的结构。
为了更轻松地将图片存储到相应的配置文件和空间,我将对象中的图片位图更改为字符串,然后再将对象解析为数据库,然后当我将对象取回时,将字符串转换为字符串回到位图。
我只是想知道这将来是否会带来任何降价成本。或者,如果这种实现是安全的,我们可以在数据库中放置更多数据。
答案 0 :(得分:4)
保持当前数据库结构不变,就会遇到问题。
使用实时数据库和这种结构,每次您请求“用户/ SOME_ID”时,都将下载其下面的所有数据-包括序列化的图像。有关如何整理数据以免发生这种情况的信息,请咨询database structure guide。
此外,我建议使用Cloud Storage for Firebase以其原始二进制格式存储图像,而不是序列化为Base64占用约30%以上的空间。与RTDB一样,如果将文件存储在“用户/ SOME_ID / roomImages / ROOM_ID / ...”或“ roomImages / ROOM_ID / ...”等结构化位置,则可以使用规则保护存储空间。
答案 1 :(得分:1)
我认为这不是安全且糟糕的实现,因为即使没有任何加密,您也将用户数据保存在第三方服务中,而不是将其存储在您可以完全控制的后端中。 如果我是您应用程序的用户,我会不喜欢它,但是如果该应用程序仅用于测试某些内容,那就没有问题。