匿名提交表单的Firebase安全规则(AngularFire)

时间:2015-10-17 15:13:39

标签: angularjs security angularfire firebase-security

在阅读完Firebase的安全文档后,我对如何为我网站上的简报注册框正确配置Firebase安全性感到困惑。我希望公众能够匿名提交他们的注册数据,但不能看到其他人的提交。

我认为这就像撤销读取权限一样简单:

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

但是使用AngularFire时,似乎需要read权限才能知道用户提交时是否存在成功/错误,因为我收到了错误。

因此,我想我的问题是:如何配置安全性以允许匿名用户只看到他们的数据提交,但没有其他人?

1 个答案:

答案 0 :(得分:3)

在Firebase文档的其他部分中发现了我的答案:Anonymous Authentication

我没有意识到匿名用户可以通过一次性使用身份验证方法进行身份验证。因此,安全规则将遵循他们发布的示例:

{
  "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'"
      }
    }
  }
}