android - Firebase 实时数据库与存储
问题描述
我使用实时数据库来存储我的用户配置文件。
每个配置文件都可以包含多个房间,其中每个房间都包含自己的图片,从而创建了一个非常复杂的结构。
为了更容易将图片存储到相应的配置文件和房间,我在将对象解析到数据库之前将 android 中的图片位图更改为字符串,然后当我取回对象时,我将字符串转换回位图。
我只是想知道这是否会在未来降低成本。或者如果这个实现是安全的,我们将更多数据放在数据库中。
解决方案
使用您当前的数据库结构,您将遇到问题。
使用实时数据库和这种结构,每次您请求“user/SOME_ID”时,您都将下载它下面的所有数据——包括您的序列化图像。请参阅数据库结构指南以获取有关如何展平数据以免发生这种情况的信息。
此外,我建议使用Cloud Storage for Firebase以原生二进制格式存储图像,而不是序列化为 Base64 占用大约 30% 的空间。与 RTDB 一样,如果您将文件存储在诸如“user/SOME_ID/roomImages/ROOM_ID/...”或“roomImages/ROOM_ID/...”之类的结构化位置,则可以使用规则保护存储。
推荐阅读
- gcc - -mcpu32 标志的 GCC 错误,需要 CPU32 编译器
- python - 结束列上的列总计
- reactjs - 当我使用反应钩子更改状态时如何导致重新渲染?
- youtube-api - Youtube Api 的私人影片
- reactjs - setState 没有切换值并返回未定义的 React
- sql - 如果值不可用,则获取上个月的值
- iframe - Ace 编辑器在 iframe 中不起作用(react-frame-component)
- javascript - JQUERY/AJAX-multiply classes based on content number
- python - Python拆分函数和数组
- java - 在 Java 中从 Object 类型转换为 Integer 类型时出现 ClassCastException