【发布时间】:2021-04-27 23:35:29
【问题描述】:
我收到一封电子邮件,说明规则不安全,对此表示赞赏,但遵循文档并尝试应用其中一个规则,我收到了各种错误,因此希望有人能在这里帮助我,因为我找不到一种与 google-firebase 通信的方式。
除了试图在要更正的页面上发布反馈外,反馈还要求提供只能在同一页面上截取的屏幕截图?这可能是我的浏览器默认设置为不允许的东西?我会检查一下,但在那之前这里是规则和错误,所以也许有人可以让我知道在实时数据库的公共和私人混合访问下此页面上的错误:https://firebase.google.com/docs/rules/insecure-rules
{
// Allow anyone to read data, but only authenticated content owners can
// make changes to their data
"rules": {
"some_path/${uid}": {
".read": true
// or ".read": "auth.uid != null" for only authenticated users
".write": "request.auth.uid == uid"
}
}
}
模拟失败 - 第 9 行:应为 ',' 或 '}'。
删除了 cmets,然后出现此错误:
{
"rules": {
"some_path/${uid}": {
".read": true
".write": "request.auth.uid == uid"
}
}
}
感谢您的帮助 按照建议使用这种格式的规则
{
"rules": {
"propco-test": {
"$uid": {
".read": true,
".write": "request.auth.uid == $uid"
}
}
}
}
错误是: 模拟失败 - 第 6 行:未知变量“请求”
【问题讨论】:
-
规则在
".read": true之后缺少,,这使它们成为无效的JSON。如果您添加该错误应该消失。我建议通过 JSON 验证器运行规则来捕获这样的语法错误。我还提交了一个错误以在文档中修复它,所以希望它会尽快修复。 -
我之前试过,忘了提。它给出了这个错误:模拟失败 - 第 6 行:键名不能包含“.”、“#”、“$”、“/”、“[”或“]”(未绑定的名称以“$”开头) .我还将尝试使用 json 验证器。谢谢
-
是的,这不是一个有效的语法:
"some_path/${uid}":。 -
@FrankvanPuffelen 感谢您的帮助。它仍然无法以您抱怨相同的格式在下面发布(第 8 行:字符串不能包含“.”、“#”、“$”、“/”、“[”或“]” )。我完全迷失了这些规则。在另一个帐户上完全相同的设置,它停止接收不安全的规则。可以在任何地方接受有关这些规则的教育?看起来文档非常神秘(对于新手),并且在某些情况下测试时甚至无法正常工作。赞赏
-
该错误消息应该随着我下面答案中的结构而消失。您发现的文档错误已修复。如果您发现类似问题,请提供链接。您发现问题的文档是我们在该主题上拥有的最好的文档。我发现它没有那么神秘,只是一种不寻常的语法。如果您遇到另一个具体问题,请发布一个包含您的规则的问题,以及不适合它的代码。
标签: firebase-realtime-database firebase-security