执行Firebase规则';s向Or运算符订购物品

执行Firebase规则';s向Or运算符订购物品,firebase,firebase-realtime-database,firebase-security,Firebase,Firebase Realtime Database,Firebase Security,我正在创建Firebase数据库并设置访问规则。对于一个位置,我有以下规则: .write:“data.hasChild(auth.uid)| |!data.exists()” 当我尝试写入模拟器中不存在的测试位置时,我被拒绝,但是当我切换顺序时,如下所示 .write:“!data.exists()| | data.hasChild(auth.uid)” 它成功了。为什么会这样?我在文档中没有提到顺序,也从未见过仅基于第一个操作数失败的Or运算符 顺序应该无关紧要。您能否编辑您的问题,以包含模

我正在创建Firebase数据库并设置访问规则。对于一个位置,我有以下规则:

.write:“data.hasChild(auth.uid)| |!data.exists()”

当我尝试写入模拟器中不存在的测试位置时,我被拒绝,但是当我切换顺序时,如下所示

.write:“!data.exists()| | data.hasChild(auth.uid)”


它成功了。为什么会这样?我在文档中没有提到顺序,也从未见过仅基于第一个操作数失败的Or运算符

顺序应该无关紧要。您能否编辑您的问题,以包含模拟器意外行为的屏幕截图?我想查看现有的JSON、您正在写入的位置、您正在写入的数据和身份验证状态。我已经修改了原始位置,但我重新创建了场景,并重试,但仍然有效。我想我误解了发送的字典将如何从模拟器放置到树中,以及规则将如何执行。我希望模拟器能显示数据在模拟写入后的样子。