Firebase 存储 REST url https:// URL 的访问控制

Firebase storage REST url access control of the https:// URLs

我已经研究这个问题好几个小时了,我担心我已经知道答案了,但我希望那里的天才们可能知道一些我还没有发现的东西。 (手指交叉)

设置
我正在使用 Ionic 1 和 Firebase 构建聊天应用程序。这意味着我可以通过 REST API 与 Firebase 进行交互。这是一种私人聊天体验,因此所有交流的数据都应保持安全。
我允许用户上传图片,我决定利用 Firebase 的新存储功能。数字文件更适合那里。
我可以使用存储 API 成功上传图像并检索它们...耶(感谢 Firebase)

问题
鉴于我在 REST 世界工作,我通过 URL (通过在文件 ref 上使用 getDownloadURL) 访问图像。生成的 URL 是 public (但不可猜测)。这个 URL 的 public 性质是我目前的垮台:(
我知道 URL 被设计成不可猜测的,如果所有其他方法都失败了,我可以进入控制台撤销 URL,我希望有一些方法可以使用某些东西来保护用户内容不仅仅是混淆。

询问或希望

当前想法

提前感谢您的建议和指导

这里是 Firebase Storage JS 开发者。

既然你提到使用 "getDownloadURL on the file ref",我假设你正在使用 Firebase Storage JS 库。

  • Is there a way to create time sensitive URLs (maybe using security rules)
  • Is there a way to create conditional URLs such that it expires after one "download"

很遗憾,我们现在不提供这些功能。

Is there a way to download the content as base64 similar to db snapshots

目前,您只能通过 unguessable 下载 URLs 下载内容。

Is there something I am not thinking of that can solve this problem

看来您对我们图书馆目前提供的内容非常了解。我认为目前最好的选择是使用不可猜测的下载 URLs。唯一能够下载该文件 URL 的用户与最初可以下载实际文件的用户相同。

话虽如此:我同意你的看法,如果你能更灵活地处理文件下载的授权(只允许通过 SDK 访问经过身份验证的用户,more/programmatic控制不可猜测的 URLs、一次性下载 URLs 等)。在寻找改进产品的方法时,我们一定会考虑这一点,感谢您的反馈。