【发布时间】:2017-08-04 08:33:35
【问题描述】:
我正在 Firebase 上测试我的数据的安全性。最近我在文档上已经有一段时间了,我以为我理解了它,但是在模拟器上做这样的事情时,我很头疼:
规则规定:
"propiedades": {
".read": "auth != null",
".write": "auth != null",
".validate": "data.child('owner').val() === auth.token.sub"
}
在这种特殊情况下data.child('owner').val() 既不是"s0kf6RvEzmfGGjVq9q14GQ6s14H32" 不等于"s0kf6RvEzmfGGjVq9q14GQ6s14H3"(有一个尾随“2”)也不是auth.token 应该是=== data.child('owner').val(),但具体来说应该是auth.token.sub到。这到底是怎么回事?
附带说明一下,即使字符串相等,即使我将规则更改为以下内容,操作也会执行:
"propiedades": {
".read": "auth != null",
".write": "auth != null",
"$id" : {
".validate": "data.child('owner').val() === auth.token.sub"
}
}
繁重的编辑来自于我正在测试所有可能的组合,而一切都违背了我的逻辑。在这一点上我很困惑。
谢谢
【问题讨论】:
标签: firebase firebase-realtime-database firebase-security