【发布时间】:2016-03-21 22:46:25
【问题描述】:
为方便阅读本题,参考以下网址:
网址定义:url1 = 'https://my-firebase.firebaseio.com/users/user-id/settings';
url2 = url1 + '.json';
我测试了两种不同的安全场景——有安全性和没有安全性。无论是在 Firebase 模拟器中还是在现实生活中。如下。
没有-security.json:{
"rules": {
".read": true,
".write": true
}
}
with-security.json:
{
"rules": {
"users": {
"$uid": {
".read": "auth != null && auth.uid == $uid",
".write": "auth != null && auth.uid == $uid",
"settings": {}
}
}
}
}
现在,考虑一下 Firebase 模拟器与实际测试的不同结果。
测试结果: Security Simulator Real life
-------- --------- ---------
url1 No (untested) Fails (without error message)
url2 No (untested) Success!
url1 Yes Success! Fails (without error message)
url2 Yes Invalid path. Simulation aborted. POST <url2> 401 (Unauthorized)
问题
- 什么可能导致测试结果与现实生活中的这种差异?
- 我应该尝试什么才能使现实生活中的场景在
with-security.json规则到位?
【问题讨论】:
-
这还是你上一个问题的问题。发布您所做的确切操作。如果是写入,请发布您放入模拟器的 URL 和 JSON 以及您使用的代码。没有这些,我们猜测你在做什么。另请注意,模拟器解释了它是如何得出结果的。发布该输出。
-
@FrankvanPuffelen:感谢您提供有用的写作建议。受此评论的启发,I have rewritten this question in a separate post here。有很多细节,但读起来很快。再次感谢。
-
不要为同一个问题打开一个新问题。到目前为止,这是您在上面发布的第三个问题,仍然很难弄清楚。老实说:这个问题更接近了,但是没有看到失败的写入操作的 minimal sn-p(您放入模拟器或代码中的 URL 和 JSON),这是不可能的看看发生了什么。我正在尝试从您的最新问题中挖掘出来,但您确实应该在此处添加该信息。
标签: firebase firebase-security