【发布时间】:2016-03-21 02:25:59
【问题描述】:
以下是我的 Firebase 安全规则:
安全规则.json{
"rules": {
"users": {
"$uid": {
".write": "auth.uid === $uid",
".read": "auth.uid === $uid"
}
}
}
}
当我的路径以users 目录结尾时,它工作正常。如:
https://my-firebase.firebaseio.com/users/my-user-id.json
但是当我尝试直接发布到子目录时,如下:
https://my-firebase.firebaseio.com/users/my-user-id/settings.json
它不起作用。
问题
我需要对 security-rules.json 文件(或其他任何内容)做什么才能直接写入用户的子目录?
编辑:
有人建议,“只需扩展您的规则以包含设置。”所以我尝试了这个:
安全规则.json{
"rules": {
"users": {
"$uid": {
".write": "auth.uid === $uid",
".read": "auth.uid === $uid"
},
"settings": {
".write": "auth.uid === $uid",
".read": "auth.uid === $uid"
}
}
}
}
这会引发以下错误:
9:30: Unknown variable '$uid'.
10:31: Unknown variable '$uid'.
【问题讨论】:
-
curl --data "param1=value1&param2=value2" https://my-firebase.firebaseio.com/users/my-user-id.json有效。curl --data "param1=value1&param2=value2" https://my-firebase.firebaseio.com/users/my-user-id/settings.json不起作用。 -
只需扩展您的规则以包含设置
-
@PascalGula:你能举一个简单的例子作为答案吗?
-
您收到的
Unknown variable '$uid'.错误消息是因为您执行的操作与建议的不同。 @PascalGula 嵌套settingsinside$uid规则,你把它放在外面。我认为他的方法不会有帮助,但是如果您正确使用他的规则,语法错误就会消失。 -
@Mowzer 它不起作用在这里说几乎总是一件坏事。您期望发生什么以及究竟会发生什么?你遇到了什么错误?
标签: firebase polymer polymer-1.0 firebase-security firebase-hosting