【问题标题】:Firebase rules for a single authenticated user单个经过身份验证的用户的 Firebase 规则
【发布时间】:2018-10-10 23:33:17
【问题描述】:

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

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

我知道这允许任何人读取数据(我想要的),但我想知道是否有办法“欺骗”我的 react 应用程序认为用户,例如 uid 为“Example123”,已通过身份验证但如果该用户尝试写入失败?

我尝试过类似的方法:

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

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

【问题讨论】:

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


    【解决方案1】:

    你可以这样做:

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

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

    然后写下你的规则如下

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

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

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

    【讨论】:

    • 像魅力一样工作,非常感谢您。它还帮助我了解 Firebase 规则的工作原理。
    猜你喜欢
    • 1970-01-01
    • 2019-03-06
    • 1970-01-01
    • 2019-03-31
    • 2019-06-15
    • 1970-01-01
    • 2022-01-25
    • 1970-01-01
    • 2018-08-18
    相关资源
    最近更新 更多