单个经过身份验证的用户

时间:2018-04-30 20:35:50

标签: reactjs firebase firebase-realtime-database firebase-authentication firebase-security-rules

我创建了一个小应用程序,它使用Firebase作为我的投资组合的数据库。许多网站呈现不同的视图是否已经过身份验证的用户被记录,并且我希望有一个帐户能够登录并且将被身份验证但没有写入权限。我目前的规则如下:

"rules": {
  ".read": true,
  ".write": "auth != null", }

我知道这允许任何人阅读数据(我想要的),但我想知道是否有办法去"技巧"我的反应应用程序在思考用户时,使用" Example123"的示例uid进行身份验证,但如果该用户尝试写入失败?

我尝试过类似的事情:

"rules": {
  ".read": true,
  ".write": "auth != Example123", }

但是firebase不喜欢这样。是否可以使用firebase规则做我想要的事情,还是我需要找出不同的方法?提前谢谢。

1 个答案:

答案 0 :(得分:1)

你可以这样做:

在数据库中创建一个节点users,在该节点下,您将使用其(他们的)用户UID存储特定用户,例如:

- users
    - Lt7kif73eL58dFCYcmeEfOzUl2n1  <- User UID
      - restrictedRights: true
      - name: xxxxxx 

并按照以下方式编写规则

".write": "auth != null && !root.child('users').hasChild(auth.uid)"

当然,您应该将此规则添加到您的数据库中:

"users": {
        ".read": ....,
        ".write": false   
}