在阅读了Firebase的安全文档后,我对如何正确配置我网站上的时事通讯注册框的Firebase安全感到困惑。我希望公众能够匿名提交他们的注册数据,但不看到其他人的提交。
我认为这就像撤销读权限一样简单:
"rules": {
".read": false,
".write": true
}
但是在AngularFire中,似乎需要read
特权来知道用户提交时是否有成功/错误,因为我得到错误。
因此,我想我的问题是:我如何配置安全,允许匿名用户只看到他们的数据提交,而不是其他人的?
在Firebase文档的另一个部分找到了我的答案:匿名身份验证。
我没有意识到匿名用户可以通过一次性身份验证方法进行身份验证。因此,安全规则将遵循他们发布的示例:
{
"rules": {
"users": {
"$uid": {
// grants write access to the owner of this user account whose uid must exactly match the key ($uid)
".write": "auth !== null && auth.uid === $uid",
// grants read access to any user who is logged in anonymously
".read": "auth !== null && auth.provider === 'anonymous'"
}
}
}
}