在Firebase authz规则中使用数组

时间:2015-07-15 19:37:24

标签: firebase firebase-security

我有一个自定义的FB令牌,可解密为以下内容

{
    "uid" : "fred"
    "d" : {
        "roles" : [
            "foo",
            "bar"
        ]
    }
}

现在我想锁定我的数据,以便只有foo角色的用户才能访问数据。如何编写Firebase authz规则来执行此操作?我试过这样的东西,但它不会编译。我不认为它喜欢indexOf()方法。

{
    "rules": {
        ".read": "auth != null && auth.role != null && auth.role.indexOf('foo') > 0",
        ".write": false,
}

给了我以下错误:

  

类型错误:对不是函数的目标执行函数调用。

1 个答案:

答案 0 :(得分:0)

我重构了我的JSON,格式如下:

{
    "uid" : "fred"
    "d" : {
        "roles" : {
            "foo" : true,
            "bar" : true
        }
    }
}

我的authz规则

{
    "rules": {
        ".read": "auth != null && auth.role != null && auth.role['foo'] == true",
        ".write": false,
}