是否可以根据从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服务中定义的条件来相应地定义安全规则?
答案 0 :(得分:1)
无法从Firebase存储安全规则访问Firebase实时数据库。
您要么必须将读取权限直接编码到存储安全规则中(如here所示),要么将“成员身份”编码成一小撮custom claims。
另请参阅: