Firebase安全规则变量的作用域是什么?



是否可以在Firebase中多次使用相同的变量名称,例如$itemId:

{
  "rules": {
    "items": {
      "$itemId": {                             // first time
        ".write": "$itemId == 1"
      }
    },
    "users": {
      "$userId": {
        "items": {
          "$itemId": {                         // second time
            ".write": "$itemId == 2"
          }
        }
      }
    }
  }
}

变量有作用域吗?

一般来说,安全规则是级联的。这些变量只适用于声明它们的块{...}。它们适用于该块的所有子节点。

{
  "rules": {
     "$level1": {
        "$level2": {
           "bar": {
               ".validate": "..." // $level1, $level2 are both usable here
           }
        }
     }
     "pathb": {
        ".validate": "..." // here $level1 is undefined
     }
  }
}

最新更新