基于resource.data的动态身份验证令牌

时间:2019-01-18 02:57:55

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

我正在尝试编写一条规则,允许用户仅访问他有权访问的文档:

match /websites/{website} {
    function isSignedIn() {
      return request.auth.uid != null;
    }
    function isAuthorized(rsc) {
      return request.auth.token[rsc.data.role] == true
    }
    function isAdmin() {
      return request.auth.token.admin == true
    }

    allow read, write: if isSignedIn() && (isAuthorized(resource) || isAdmin());
}

似乎request.auth.token[rsc.data.role]存在问题,但我不知道出了什么问题。 rsc.data.role在数据库中设置为字符串,而我的用户在令牌中设置为布尔值。 例如:website.role: 'editor'request.auth.token.editor: true

这是我要访问的文档的屏幕截图: enter image description here

有什么主意吗?

0 个答案:

没有答案