如何使用我自己的身份验证服务限制firebase存储访问

时间:2017-04-03 11:09:30

标签: android firebase firebase-storage

我在我的应用程序中使用firebase存储,并且我使用自己的用户名和密码身份验证服务,我已将规则更改为公共,以便我可以上传和下载数据,但现在我给了我这个警告< / p>

  

您的安全规则已设置为公开。任何人都可以阅读或写信   你的存储桶

如何在不使用任何firebase登录或身份验证方法的情况下保护应用数据?

3 个答案:

答案 0 :(得分:4)

由于您使用自己的服务对用户进行身份验证,因此我可以考虑两个选项,都涉及管理SDK。

选项1:创建自定义令牌

假设您通过自己服务器上运行的服务对用户进行身份验证,则可以使用Firebase Admin SDK轻微编辑该系统以包含自定义令牌。基本上,如果用户提供的详细信息与您的服务预期的详细信息相匹配,则可以返回firebase可用于对用户进行身份验证的自定义标记。然后,您可以像平常一样设置Firebase安全规则。这是我建议做的。

Create custom tokens

选项2:完全限制访问并通过您的服务器请求/上传数据

您可以将安全规则设置为false,以限制对所有人的访问权限。 Admin SDK应该忽略这些规则,因为它是一个管理实例。然后,您可以让用户将文件(或下载请求)上载到您的服务器。然后,您的服务器将使用Admin SDK从Firebase请求文件并将其发送回用户。

Firebase Admin SDK

答案 1 :(得分:0)

仅为授权用户授予读写权限,如下所示

"rules": {
  ".read":  "auth != null",
  ".write": "auth != null",
 }
 }

现在你不会收到任何警告。

答案 2 :(得分:-1)

Firebase规则适用于读取和写入

{
  "rules": {
    "foo": {
      ".read": true,
      ".write": false
    }
  }
}

您可以将变量读取为true,以便其他人可以读取数据,但他们可以写入您的数据。因此您的数据是安全的。 希望你明白了