这个问题与以下内容完全相同:
是否可以根据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)的读取权限 .
例如,John的照片仅对John&Jane可见,但对Abby不可见,因为每个用户在(2)中定义的权限 .
同样地,简的照片只有约翰和简可见,但不是艾比可见的,而艾比的照片只能看到艾比,而不是约翰或简 .
有没有办法跨这些Firebase服务定义的交叉引用条件来相应地定义安全规则?
1 回答
无法从Firebase存储安全规则访问Firebase实时数据库 .
您必须将读取权限直接编码到存储安全规则中(如图所示here),或将"membership"编码为一小组custom claims .
另见:
How to restrict access to files to group members?
Dynamic control of firebase storage security rules from database
Controlling Data Access Using Firebase Auth Custom Claims