【问题标题】:Firebase - limit write to authorized userFirebase - 限制写入授权用户
【发布时间】:2018-03-08 19:50:48
【问题描述】:

我正在编写一个有用户的应用,每个用户都有行程。 我已经设法验证并插入用户的数据。现在我想为旅行列表定义规则。 目前,即使使用相同的定义,我也无法让模拟器工作(获得用户的写/读权限,但旅行失败,请参阅图片): 这就是我失败的地方:

{
  "rules": {    
    "users": {
      "$uid": {
        ".write": "$uid === auth.uid",
        ".read": "$uid === auth.uid"
      },
      "trips" : {
        "$uid" : {
            ".write": "$uid === auth.uid",
            ".read": "$uid === auth.uid"
        }
      }
    }
  }
}

我最终真正想要的是:

{
  "rules": {    
    "users": {
      "$uid": {
        ".write": "$uid === auth.uid",
        ".read": "$uid === auth.uid"
      },
      "trips" : {
        "$tid" : {
            ".indexOn": ["uid"],
            ".write": "<only if child field 'uid' is same as auth.uid>",
            ".read": "auth != null"
        }
      }
    }
  }
}

【问题讨论】:

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


    【解决方案1】:

    这是因为您已将“旅行”规则嵌套在“用户”规则下。它们都应该在“规则”节点下。像这样:

    {
      "rules": {    
        "users": {
          "$uid": {
            ".write": "$uid === auth.uid",
            ".read": "$uid === auth.uid"
          }
        },
        "trips" : {
          "$tid" : {
              ".write": "$tid === auth.uid",
              ".read": "auth!=null",
              ".indexOn":"uid"
          }
        }
      }
    }
    

    【讨论】:

    • 傻我 :( 谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-02-13
    • 1970-01-01
    • 2020-10-19
    • 2017-01-28
    • 1970-01-01
    • 2016-09-09
    • 2020-09-26
    相关资源
    最近更新 更多