【问题标题】:Firebase Real-Time database vs StorageFirebase 实时数据库与存储
【发布时间】:2019-09-06 07:06:03
【问题描述】:

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

每个配置文件都可以包含多个房间,每个房间都包含自己的图片,从而形成了一个相当复杂的结构。

这里是一个例子:

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

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

【问题讨论】:

  • 这几乎是在要求基于意见的答案。
  • 这是一种将图片存储到数据库中的奇怪方式。这也会增加开销,因为首先必须将图像转换为位图。我建议使用存储选项并将图像的 URL 存储到您的数据库中。

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


【解决方案1】:

按照您当前的数据库结构,您会遇到问题。

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

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

    • 好吧,对于一个大学项目,我们应该开发一个 android 应用程序(到目前为止,我们不必考虑任何安全性......)当我更担心性能而不是安全性时问这个。与 firebase 实时数据库相比,firebase 存储是否也为文件带来了加密?
    • #AskFirebase 发布了有关 GDPR 和隐私主题的视频,其中包括许多指向其政策的有用链接。 RTDB vs. Firestore 表明,在对存储的数据进行地理围栏时,Firestore 将更易于使用。在Serverless GDPR compliance 上也有广泛的讨论。最后,Riya Sinha 有一篇关于使用client-side encryption with Firebase 的文章。
    猜你喜欢
    • 1970-01-01
    • 2020-10-23
    • 2020-03-21
    • 1970-01-01
    • 2021-10-09
    • 2017-03-04
    • 1970-01-01
    • 1970-01-01
    • 2017-11-08
    相关资源
    最近更新 更多