基于Firestore角色的安全角色无法正常工作

时间:2018-11-22 04:25:46

标签: firebase google-cloud-firestore firebase-security-rules

您好,我需要为我的离子应用程序配置Firestore安全角色,如here所示。但是,当它应用于我的Firestore时,总是说拒绝权限。 如果我仅使用WRITE:TRUE,则正常工作。

这是我的Firestore数据库 enter image description here

在这里,我如何根据自己的定义安全角色

 match /tournaments/{tournamentsID} {
    allow read:if isLoggedIn();
    allow write:if getUserData().roles.keys().hasAny(['subscriber']);
    }

 function getUserData(){
 return get(/databases/$(database)/documents/users/$(request.auth.uid)).data
 }

现在我将其编辑为

allow write:if get(/databases/$(database)/documents/users/$(request.auth.uid)).data.roles.subscriber == true

然后开始工作。

但是如果我尝试使用如下功能进行相同的操作

function getRole(role) {
 return get(/databases/$(database)/documents/users/$(request.auth.uid)).data.roles[role]
  }

并像

一样打电话
allow write:if  getRole('subscriber') == true;

它不起作用

0 个答案:

没有答案