我在我的应用程序中使用firebase存储,并且我使用自己的用户名和密码身份验证服务,我已将规则更改为公共,以便我可以上传和下载数据,但现在我给了我这个警告< / p>
您的安全规则已设置为公开。任何人都可以阅读或写信 你的存储桶
如何在不使用任何firebase登录或身份验证方法的情况下保护应用数据?
答案 0 :(得分:4)
由于您使用自己的服务对用户进行身份验证,因此我可以考虑两个选项,都涉及管理SDK。
选项1:创建自定义令牌
假设您通过自己服务器上运行的服务对用户进行身份验证,则可以使用Firebase Admin SDK轻微编辑该系统以包含自定义令牌。基本上,如果用户提供的详细信息与您的服务预期的详细信息相匹配,则可以返回firebase可用于对用户进行身份验证的自定义标记。然后,您可以像平常一样设置Firebase安全规则。这是我建议做的。
选项2:完全限制访问并通过您的服务器请求/上传数据
您可以将安全规则设置为false
,以限制对所有人的访问权限。 Admin SDK应该忽略这些规则,因为它是一个管理实例。然后,您可以让用户将文件(或下载请求)上载到您的服务器。然后,您的服务器将使用Admin SDK从Firebase请求文件并将其发送回用户。
答案 1 :(得分:0)
仅为授权用户授予读写权限,如下所示
"rules": {
".read": "auth != null",
".write": "auth != null",
}
}
现在你不会收到任何警告。
答案 2 :(得分:-1)
Firebase规则适用于读取和写入
{
"rules": {
"foo": {
".read": true,
".write": false
}
}
}
您可以将变量读取为true,以便其他人可以读取数据,但他们可以写入您的数据。因此您的数据是安全的。 希望你明白了