检查不存在的节点的值-Firebase数据库规则

时间:2018-10-18 18:12:12

标签: firebase firebase-realtime-database firebase-security-rules

我正在编写一条规则,其中只有在另一个节点的计数器小于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消息外,我真的不知道如何调试安全规则。

0 个答案:

没有答案