实时FireBase设置规则以检查防止重复 [英] RealTime firebase set rules to check prevent duplicates

查看:0
本文介绍了实时FireBase设置规则以检查防止重复的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试通过电子邮件检查我的数据库中是否存在用户,是否有任何Firebase规则来执行此操作? 我的用户:

public class User {
    private String email;
    private String password;
    private boolean hasRightToDrive;
}

使用此Firebase规则,我无法添加用户:

{
  "rules": {
    ".read": "now < 1640815200000",  // 2021-12-30
    ".write": "!data.exists()",  // 2021-12-30
  }
}

这样我仍然可以添加多个具有相同邮件的用户

{
  "rules": {
    ".read": "now < 1640815200000",  // 2021-12-30
    ".write": "data.exists()",  // 2021-12-30
  }
}

推荐答案

使用FireBase的登录过程将在以下用户存在的情况下引发错误:Firebase: Error (auth/email-already-in-use).

如果您的用户不是指没有登录到您的应用程序中的人,而是指只向您发送电子邮件的人。最好的方法是使Firebase函数在您接受电子邮件检查的位置检查它是否全部存在于数据库中,如果存在,则抛出错误。

使用规则,您可以将ID设置为等于用户电子邮件并在规则函数中使用,但不要认为您可以设置文档ID‘@’和‘’。查斯。因此,您将需要使用用户电子邮件地址进行散列,并将散列设置为id。电子邮件都是小写的,所以您可以将id设置为:example@gmail.comAsexampleAgmailOcomwhere A=@and O=.

这篇关于实时FireBase设置规则以检查防止重复的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆