Javascript 如何在Firebase安全规则中验证电子邮件地址

Javascript 如何在Firebase安全规则中验证电子邮件地址,javascript,firebase,firebase-realtime-database,firebase-security,Javascript,Firebase,Firebase Realtime Database,Firebase Security,我一直保存在一个参考ID下的用户数据,以及一些包含电子邮件地址的用户信息。我想让数据可用,但要防止人们猜测ID,并查看其背后是否有信息 我只想给数据,如果他们提供我的ID和电子邮件地址,他们注册 所以我将这些数据存储在Firebase中: { "data" : { "ms12345678" : { "name" : "John Doe", "age" : 40, "email" : "johndoe@domain.com" } } 因

我一直保存在一个参考ID下的用户数据,以及一些包含电子邮件地址的用户信息。我想让数据可用,但要防止人们猜测ID,并查看其背后是否有信息

我只想给数据,如果他们提供我的ID和电子邮件地址,他们注册

所以我将这些数据存储在Firebase中:

{ "data" : {
   "ms12345678" : { 
       "name" : "John Doe",
       "age"  : 40,
       "email" : "johndoe@domain.com"
    }
}
因此,除非我提供
johndoe@domain.com


我不确定我在这里应该采取什么方法。我不希望用户进行身份验证,但向他们提供链接。

您可以验证帐户电子邮件地址是否与该值匹配:

{
  "rules": {
    "data": {
      "$uid": {
        ".read": "auth.token.email === data.child('email').val()"
      }
    }
  }
}
有关可用属性的列表,请参见

或者,您可以要求用户知道电子邮件地址。为此,请将电子邮件地址嵌入用户路径:

{ "data" : {
   "ms12345678" : { 
      "johndoe@domain,com": {
         "name" : "John Doe",
         "age"  : 40,
         "email" : "johndoe@domain.com"
      }
   }
}
使用此选项,您可以将读取权限限制为了解完整路径的人:

{
  "rules": {
    "data": {
      "$uid": {
        "$email: {
          ".read": "auth.uid === $uid"
        }
      }
    }
  }
}