我一直在参考ID下保存用户数据,以及包含电子邮件地址的一些用户信息。我想让数据可用,但阻止人们猜测ID并查看其背后是否有信息。
我只想提供数据,如果他们向我提供他们注册的ID和电子邮件地址。
所以我将这些数据存储在Firebase中:
var ref = firebase.database().ref("data/ms12345678")
这样做johndoe@domain.com
应该会失败,除非我同时提供{{1}}。
我不确定我应该采取什么方法。我不希望用户进行身份验证,但为他们提供链接。
答案 0 :(得分:5)
您可以通过以下方式验证帐户电子邮件地址是否与该值匹配:
{
"rules": {
"data": {
"$uid": {
".read": "auth.token.email === data.child('email').val()"
}
}
}
}
请参阅documentation on auth.token
以获取可用属性列表。
或者,您可以要求用户知道电子邮件地址。为此,请将电子邮件地址嵌入用户的路径中:
{ "data" : {
"ms12345678" : {
"johndoe@domain,com": {
"name" : "John Doe",
"age" : 40,
"email" : "johndoe@domain.com"
}
}
}
通过此操作,您可以限制对知道完整路径的人员的读取权限:
{
"rules": {
"data": {
"$uid": {
"$email: {
".read": "auth.uid === $uid"
}
}
}
}
}