访问Firebase规则中的电子邮件地址

这个问题在这里已经有了答案:

  • 我们如何保证Firebase用户保存的电子邮件确实是他自己的电子邮件? 1个答案

  • 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分支。

    链接地址: http://www.djcxy.com/p/84217.html

    上一篇: accessing email address in firebase rules

    下一篇: How prevent username from duplicate signUp in Firebase?