我有一个如下所示的用户节点:
name: "someone"
isAdmin: true
isDev: true
permissions:
shots: true
最终,我想授予管理员身份的任何人读写任何内容。
但是与此同时,如何检查用户权限,然后授予访问权限?
类似的东西:
match /{document=**} {
allow write: if request.user.permissions.shots == true;
}
更新:
我走得更远。
allow write: if get(/databases/$(database)/documents/users/$(request.auth.uid)).data.permissions.shots == true;
我觉得应该可以工作,因为以下内容可以工作:
allow write: if get(/databases/$(database)/documents/users/$(request.auth.uid)).data.name == 'someone';
更新:
随着我的深入研究,下面的方法似乎是正确的方向,但仍然行不通
allow write: if get(/databases/$(database)/documents/users/$(request.auth.uid)).data.permissions2.child('shots').val() == true;
答案 0 :(得分:0)
所以,事实证明我使它变得比原来更难。
如果我只是省略
==真
它本来可以工作。我以为那是我尝试的第一件事,但是哦
allow write: if currentUser().permissions.shots || currentUser().isAdmin;
仅供参考,此外,我还添加了一个函数来将其干燥
function currentUser() {
return get(/databases/$(database)/documents/users/$(request.auth.uid)).data;
}