为了账号安全,请及时绑定邮箱和手机立即绑定

Firebase 数据库安全规则 - 根据动态 CustomClaim 名称设置访问权限

Firebase 数据库安全规则 - 根据动态 CustomClaim 名称设置访问权限

开满天机 2023-06-15 09:53:37
所以我已经设法根据他们所属的组使用下面的 Node.js 代码为每个用户分配一个自定义声明:exports.giveToken = functions.database.ref("userSearch/{Id}").onCreate((snapshot,context)=>{ if(snapshot.child("cId").exists()){   const group = snapshot.child("cId").val();   const userId = context.params.Id;    return admin.auth().setCustomUserClaims(userId, {[group]: true}); }else{   return null; }})如您所见,companyId / customClaim 名称是动态设置的,即可以是 1234 也可以是 123456在 Firebase 的数据库安全规则中,这是我的规则:{  "rules": {        "c" :{        "$comp_id" : {              "$uid": {              ".read" :"auth.uid == $uid && auth.token.$comp_id === true",              ".write": "auth.uid == $uid"              }        }           }}}问题实际上是双重的,这种类型的访问控制是否可以通过 Firebase Custom Claims 实现?如果可以,我该如何实现它?我在这里的最终目标是用户加入>根据他们的组分配自定义声明>只能访问来自该组(或节点)的数据。提前谢谢了。
查看完整描述

1 回答

?
九州编程

TA贡献1785条经验 获得超4个赞

您需要使用方括号表示法:


{

  "rules": {

        "c" :{

        "$comp_id" : {

              "$uid": {

              ".read" :"auth.uid == $uid && auth.token[$comp_id] === true",

              ".write": "auth.uid == $uid"

              }

        }

     

      }

}}


查看完整回答
反对 回复 2023-06-15
  • 1 回答
  • 0 关注
  • 86 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信