限制Firebase对单个Android应用的访问权限而无需身份验证

时间:2019-10-22 02:10:49

标签: android firebase firebase-storage firebase-security

我需要访问Firebase存储中的读/写图像。没有身份验证功能。如何仅通过应用限制数据管理。

提供公共访问权限的现有规则是

rules_version = '2';
service firebase.storage {
  match /b/{bucket}/o {
    match /{allPaths=**} {
      allow read, write;
    }
  }
}

2 个答案:

答案 0 :(得分:1)

无法将通过Firebase SDK访问文件的方式仅限制为您的应用程序。这种方法在基于云的环境中根本行不通。

另请参阅:

尽管这些通常与其他Firebase产品有关,但相同的逻辑也适用于存储。

您将需要在安全规则中描述可以通过Firebase API对Cloud Storage中的文件执行哪些操作,然后(如果需要)描述谁也可以通过使用Firebase身份验证来执行这些操作。

请注意,使用Firebase身份验证不一定要求用户提供凭据,因为Firebase提供了sign in anonymously的选项。这只是为每个用户提供了一个安全的,唯一的ID,您可以使用该ID,例如,允许用户仅访问自己上传的文件(以及许多其他用例)。

答案 1 :(得分:0)

按照docs

  

Cloud Storage将文件存储在Google Cloud Storage存储桶中,从而可以通过Firebase和Google Cloud对其进行访问

尽管firebase直接不支持该功能,但是Google Cloud可以选择将API限制为仅特定的应用程序包名称签名。我尝试使用MAP SDK,但从理论上讲存储也应该工作。