翻转条件或返回firebase实时规则中的错误访问
我正在学习Firebase的安全规则,但当我翻转条件时,我看到一些奇怪的东西,或者它返回true作为例外,但返回错误 这是JSON树翻转条件或返回firebase实时规则中的错误访问,firebase,firebase-realtime-database,firebase-authentication,firebase-security,Firebase,Firebase Realtime Database,Firebase Authentication,Firebase Security,我正在学习Firebase的安全规则,但当我翻转条件时,我看到一些奇怪的东西,或者它返回true作为例外,但返回错误 这是JSON树 { "-LnOK0641vZRqJ1k5tCc" : { "category" : "Sports", "eq" : "ndndnjelwjdjrkeldnhfkelenjrkkee\n", "id" : 4, "instruction" : "nfhrjejwkldjfjejejhdhejejejejje", "tit
{
"-LnOK0641vZRqJ1k5tCc" : {
"category" : "Sports",
"eq" : "ndndnjelwjdjrkeldnhfkelenjrkkee\n",
"id" : 4,
"instruction" : "nfhrjejwkldjfjejejhdhejejejejje",
"title" : "title11",
"username" : "bdjsjd"
},
"-LnOby-AZv2D-FkgBopU" : {
"category" : "Sports",
"eq" : "bdnwjksbxksndjejwldjjdjekwldnd",
"id" : 5,
"instruction" : "hejelwldhfhekekdhdjejekdk",
"title" : "bsndnfhdkwmsbdjs",
"username" : "bdjsjd"
},
"-LnOc2Y5DT5XvwJv6NJu" : {
"category" : "Sports",
"eq" : "ndnskajdhfiwldhdoelw",
"id" : 6,
"instruction" : "jsksksklfhfjejeksjfjiei",
"title" : "5ndnsjsndbdkwlaldhjd",
"username" : "bdjsjd"
}
}
返回数据时的Firebase规则
"$uid" : {
".read" : true,
".write" : "((!data.exists() && auth != null) || (auth.uid == root.child('Users').child(data.child('username').val()).child('uid').val()))"
}
Firebase拒绝返回
"$uid" : {
".read" : true,
".write" : "((auth.uid == root.child('Users').child(data.child('username').val()).child('uid').val()) || (!data.exists() && auth != null) )"
}
我翻转或只翻转,结果不一样
编辑
当我使用管理员权限时,被拒绝的权限将返回允许的访问权限当评估安全规则中的条件时出错,整个规则立即失败 在第一个规则集中,您可以正确地防范错误,因此规则引擎会评估:
!data.exists() && auth != null) ||
如果没有数据,也没有经过身份验证的用户,则允许该操作(因为您有一个|
)
在第二个规则集中,您的条件以以下内容开始:
auth.uid == ...
如果没有经过身份验证的用户,
auth
不存在或null
和auth.uid
抛出错误,导致操作被拒绝。谢谢。。。你的意思是,如果auth为null,我将它与auth.uid
一起使用,它将像NPE一样抛出并直接拒绝,而不返回下一个|
代码?