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