我有一个看起来像这样的数据库:
app-name
᠁
[-]⋯users
᠁
᠁⋯⋯ -AOSa09sd8QEK
᠁ ᠁
᠁ ᠁⋯⋯ date: 12/06/05
᠁ ᠁
᠁ ᠁⋯⋯ email: foo@gmail.com
᠁
᠁⋯⋯ -AOSa3xsd489E
᠁
᠁⋯⋯ date: 12/36/05
᠁
᠁⋯⋯ email: bar@gmail.com
我要避免重复发送电子邮件,因此,如果我尝试推送项目{date: 11/06/10, email: bar@gmail.com
,则必须拒绝该项目,并且数据库中也不应发生任何事情。
我的规则目前是这样的:
{
"rules": {
"users": {
".read": true,
".write": true,
}
}
}
如何在Firebase数据库上实施一项规则,以防止在此电子邮件约束下出现重复?
答案 0 :(得分:0)
您不能编写像这样检查唯一性的规则。最好的办法是使用Cloud Function在写入时触发,然后可以执行查询以查看现在是否有1条以上的记录共享添加的数据。这意味着有人刚刚添加了一个副本,然后可以在同一函数中将其删除。