规则条目重复firebase无法正常工作

时间:2017-05-26 14:20:41

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

我在android中有一个应用程序注册卖家,它有一个独特的电子邮件,我将它们存储在firebase中。创建一个规则,不允许添加重复项,但它似乎不起作用。我做错了什么?

ANSI_PADDING = OFF

我的添加方法

{
 "rules": {
   ".read": true,
   ".write": true,
   "sellers": {
     "$seller": {
       "email": {
         ".write": "!data.exists()"
       }
     }
   }
 }
}

1 个答案:

答案 0 :(得分:3)

您正在调用push(),这会生成一个统计上保证唯一的新子项。

如果您想确保唯一的电子邮件地址,您必须保留一个集合,其中(编码的)电子邮件地址是关键:

emails
  pete@somedomain,com
  puf@somedomain,com

使用此结构,以下规则将确保电子邮件地址只能写一次:

{
 "rules": {
   ".read": true,
   "emails": {
     "$email": {
       ".write": "!data.exists()"
     }
   }
 }
}

唯一值的主题定期出现,所以我建议您也查看以下内容: