在我的火力基地里我有个家长当“客户”。然后是“发票”的子级,然后是发票上的子级。
'clients' {
'uid' {
'invoices' {
'number': '1003 //etc...
'payments' {
}
'history' {
}
'discussion' {
}
}
}
}我只允许客户写信给付款,历史和讨论。但是,当我执行以下操作时,我会在Firebase仪表板规则部分得到一个错误Cannot have multiple default rules ('$payments' and '$history').。
"clients": {
".write" : "root.child('roles').child(auth.uid).child('level').val() == 4",
".indexOn" : "number",
"$estimates": {
"$discussion": {
".write": "root.child('roles').child(auth.uid).child('level').val() == 2"
}
},
"$invoices": {
"$payments": {
".write": "root.child('roles').child(auth.uid).child('level').val() == 2"
},
"$history": {
".write": "root.child('roles').child(auth.uid).child('level').val() == 2"
},
"$discussion": {
".write": "root.child('roles').child(auth.uid).child('level').val() == 2"
}
}
},那么,写这些规则的正确方法是什么呢?
发布于 2015-11-13 18:38:03
在规则中,您似乎忽略了JSON树中的一些级别。
"clients": {
"$clientid": {
".write" : "root.child('roles').child(auth.uid).child('level').val() == 4",
"invoices": {
".indexOn" : "number",
"$invoiceid": {
"payments": {
".write": "root.child('roles').child(auth.uid).child('level').val() == 2"
},
"history": {
".write": "root.child('roles').child(auth.uid).child('level').val() == 2"
},
"discussion": {
".write": "root.child('roles').child(auth.uid).child('level').val() == 2"
}
}
},对于需要应用于节点下所有非匹配子节点的规则,您应该只使用$变量。
因此,如果您将所有支付保留为payments节点的子节点,并希望为它们制定特定的验证规则,则可以:
"payments": {
".write": "root.child('roles').child(auth.uid).child('level').val() == 2",
"$paymentid": {
".validate": "..."
}
},https://stackoverflow.com/questions/33697511
复制相似问题