根据Firebase数据库条件创建Firebase存储安全规则

时间:2018-10-15 00:46:08

标签: firebase firebase-realtime-database firebase-storage firebase-security-rules

是否可以根据从Firebase实时数据库中存储的数据评估条件来分配Firebase存储安全规则?

例如:

(1)Firebase存储模型:

{ userPhotos/:
       "JohnUID" : {
           "JohnURL": john.jpeg,
       },

       "JaneUID" : {
            "JaneURL": jane.jpeg,
        },

        "AbbyUID" : {
             "AbbyURL": abby.jpeg,
        },
 }

(2)Firebase实时数据库模型:

{ userReadPermissions: 
       "JohnUID": {
           "JohnUID": true,
           "JaneUID": true,
           "AbbyUID": false,
       },

       "JaneUID": {
           "JohnUID": true,
           "JaneUID": true,
           "AbbyUID": false,
       },

       "AbbyUID": {
           "JohnUID": false,
           "JaneUID": false,
           "AbbyUID": true,
       },
}

目标是根据Firebase RTD(2)中每个UID设置的条件,仅允许对照片URL存储节点(1)的读取权限。

例如,根据(2)中每个用户定义的权限,John和Jane只能看到John的照片,而Abby则看不到。

类似地,Jane和Jane只能看到Jane的照片,而Abby看不到,而Abby只能看到Abby的照片,而John或Jane都看不到。

是否可以交叉引用这些Firebase服务中定义的条件来相应地定义安全规则?

1 个答案:

答案 0 :(得分:1)

无法从Firebase存储安全规则访问Firebase实时数据库。

您要么必须将读取权限直接编码到存储安全规则中(如here所示),要么将“成员身份”编码成一小撮custom claims

另请参阅:

相关问题