哪个规则允许我防止在firebase上通过电子邮件/ id重复插入?

时间:2016-07-26 19:41:06

标签: firebase firebase-realtime-database firebase-authentication firebase-security

我一直在查看文档,但如果电子邮件存在于记录中,我无法弄清楚如何防止重复的条目。有我目前的规则

{
  "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 with an email and password
        ".read": "auth !== null && auth.provider === 'password'"
      }
    }
  }
}

我的记录格式为:

enter image description here

非常感谢

1 个答案:

答案 0 :(得分:2)

不幸的是,由于它的分布式特性,你不能在firebase中进行这种类型的查询。一般来说,数组非常棘手,您可以在Firebase here的上下文中了解它们的局限性。

我看到它的方式有两个选项,您可以通过电子邮件本身索引用户“数组”,或者您可以保留一个完全独立的对象来保存系统中的所有电子邮件,以便在您进行插入时进行检查。我的建议是第一个,将用户对象设置为users/<email>