我刚开始使用Firebase安全性,可能我错过了一些东西。我需要在通知'之后验证。路径(键)是15(稍后我将使用匹配方法更新15为正则表达式,但目前我正在努力执行这个简单的情况):
{
"rules": {
".write": true,
"notifications": {
"$year": {
".validate": "newData.val() === '/15'",
}
}
}
}
我正在模拟器中测试以下内容:
/notifications/15
我发布的数据:
{ "foo": "bar" }
Firebase模拟器返回:
Attempt to write {"foo":"bar"} to /notifications/15 with auth={"provider":"anonymous","uid":"a5e08499-c41d-47d0-9df4-64d9af802755"}
/:.write: "true"
=> true
/notifications/15:.validate: "newData.val() === '/15'"
=> false
Validation failed.
Write was denied.
答案 0 :(得分:1)
如果您要将值写入/notifications/15
,那么newData.val()
将是该值,而不是密钥。
我认为没有办法动态测试密钥。