访问Firebase规则中的电子邮件地址
这个问题在这里已经有了答案:
Firebase团队仍在努力在auth对象中提供该电子邮件,并且您可以在规则中使用auth.token.email
进行一些限制 。 请在这篇文章中看看更多的细节。
如果当前的Firebase解决方案无法满足您的所有需求,则可以选择一些解决方法。
既然你想保持你的当前/users
结构,你可以在注册一个新用户的时候,将用户的uid链接到一个新的分支/user_emails
中相应的电子邮件中,这个电子邮件只需要存储$uid: email
。 那么你的规则将如下所示。
"user_emails": {
"$uid": {
".write": "auth.uid == $uid",
".validate": "!root.child('Users').hasChild(newData.val())"
}
},
"locations": {
"$location": {
".read": "root.hasChild('users/' + root.child('user_emails').child(auth.uid).val() + '/locations/' + $location)"
}
}
请记住,您需要增强它们以确保只有合适的用户才能编辑这个新的user_emails
分支。
上一篇: accessing email address in firebase rules
下一篇: How prevent username from duplicate signUp in Firebase?