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