我尝试验证用户个人资料是否具有特定属性,以便在我的Firebase路径中允许.write
数据,但我找不到方法。
这是我的Firebase中的用户个人资料结构:
root
|--user_profiles
| |--uid
| | |--name
| | |--email
| | |--invite // How could I reach the properties of this path with my .validate rules?
这些是我试图让它发挥作用的规则:
"invitations": {
".write": true,
".validate": "auth.provider == 'provider' && auth.id == '123456'",
"$invitation": {
".read": true,
"used": {
".validate": "root.child('user_profiles').hasChild(auth.uid).(...)" // I'm stuck here.
}
}
}
如果且仅当属性“邀请”符合我的要求(例如,它们是否相等)时,我们的想法是允许{used}中的.write
。
我真的陷入了困境,我不想让它在不理解的情况下发挥作用。
答案 0 :(得分:2)
您可以简单地连接邀请的路径:
".validate": "root.child('user_profiles/'+auth.uid+'/invite').val() === ???"
用您的标准替换???
,例如data.val()(对于此路径的当前值)或newData.val()(对于在此路径中设置的值)。