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