firebase - Firebase 数据库规则以防止重复
问题描述
我有一个看起来像这样的数据库:
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 数据库上实施规则,以防止在此电子邮件约束下重复?
解决方案
您不能编写这样的规则来检查唯一性。您可以做的最好的事情是使用云函数在写入时触发,然后可以执行查询以查看现在是否有超过 1 条记录共享添加的数据。这意味着有人刚刚添加了一个副本,然后可以在同一个函数中将其删除。
推荐阅读
- openssl - ubuntu 服务器上 apache pulsar 客户端在 tls auth 握手期间出错
- javascript - 等待 X 时间,然后继续循环 - JS React
- asp.net-mvc - 如何从控制器下载多个文件列表?MVC
- swift - 如何在不快速使用第三个变量的情况下交换任何类型的两个变量?
- python - 带有图像的 numpy vstack
- netsuite - 如何在 NetSuite SiteBuilder 应用程序中获取购物车数据
- python - 如何选择具有由 django 模板中的 render_field 呈现的值的选择字段选项?我正在使用 django-widget-tweaks 包
- ios - 集合视图最后一项右对齐
- python - 如何检查 Pandas DataFrame 中的列值类型
- angular - 从角度调用基于 java 的 API 时出错