我正在编写一条规则,其中只有在另一个节点的计数器小于5或根本不存在的情况下,才可以写入一个节点。
我已经尝试过了,但是一直在获得权限被拒绝:
// payment needs to be set one of these two has to evaluate to true
".write": "!data.exists() && root.child('allUsers/serviceUsers/' + auth.uid + '/paymentDetails').exists() && (root.child('allUsers/serviceUsers/' + auth.uid + '/activeJobCounter').val() <= 5 || !root.child('allUsers/serviceUsers/' + auth.uid + '/activeJobCounter').exists())
在此规则之上没有.write
条规则的父节点。
位于:
的节点 'allUsers/serviceUsers/' + auth.uid + '/activeJobCounter'
在创建用户时不存在,但是一旦用户上载作业即被创建。
因此,在创建工作后,它会说:
'allUsers/serviceUsers/' + auth.uid + '/activeJobCounter = 1'
这就是为什么如果用户没有(无节点)或少于5个作业的情况,我希望允许写入特定节点。
除了重试和未收到permission_denied
消息外,我真的不知道如何调试安全规则。