【发布时间】:2017-03-26 08:09:57
【问题描述】:
我将图片保存到我的 Firebase 存储中,我只希望使用该应用的用户能够访问它们。我不想强迫我的用户登录只是为了使用应用程序,所以这不是一个选项。
【问题讨论】:
-
您只需为所有用户创建一个用户和密码,并将其硬编码到您的项目中。
标签: android firebase firebase-storage
我将图片保存到我的 Firebase 存储中,我只希望使用该应用的用户能够访问它们。我不想强迫我的用户登录只是为了使用应用程序,所以这不是一个选项。
【问题讨论】:
标签: android firebase firebase-storage
由于 Firebase 后端服务托管在云端,因此任何人都可以访问它们。没有办法将他们的访问权限限制为只允许使用您编写的代码的人。任何开发人员都可以下载 SDK,重写您的代码并使用它来访问相同的后端服务。
这就是您通过基于用户的安全性来保护对 Firebase 数据(无论是数据库中的结构化数据还是存储中的文件)的访问的原因。让您的用户登录应用程序意味着您可以识别谁正在访问数据。对用户进行身份验证后,您可以使用 Firebase 的安全规则(针对 database 或 storage)来确保他们只能访问获得授权的数据。他们可能仍在使用其他代码,但您至少会知道他们是谁,并确保他们只能以您授权的方式访问数据。
您可以通过使用anonymous authentication 获得两全其美(要求用户进行身份验证,而不要求他们登录)。请记住,任何开发人员都可以下载 Firebase SDK 并匿名验证用户身份。
有关该主题的较早讨论(针对数据库,但同样适用于存储),请参阅How to prevent other access to my firebase
【讨论】:
基本上你想改变你的存储规则。在 Firebase 控制台和存储中,框架顶部有两个选项卡。一个说文件,一个说规则。如果单击“规则”选项卡,您将看到定义谁可以读写您的存储的代码视图。您将需要按照下面的链接为您的存储设置正确的规则。但是根据你想要的,你所要做的就是将读写代码设置为:
allow read: if request.auth != null;
查看此链接:https://firebase.google.com/docs/storage/security/user-security
【讨论】: