如何从节点变量中提取数据以验证firebase上的用户角色

时间:2016-08-30 09:36:32

标签: firebase firebase-realtime-database firebase-authentication firebase-security

我们正在向firebase添加身份验证角色。 我们的消息传递结构是这样的:

ColorableItemInfo

roomId是自定义字符串,用于连接两个用户(sender-reciver):

例如:

/users/<userId>/rooms/<roomId>/

我想只为userId提供对这个房间的写访问权限 4hkjheqrnv501eltbg1px或638red8osipedem08j1a6(其中roomId指定)

如何从roomId变量中实际提取userId并检查其中一个是否在auth对象中。

我试过这种方式,但没有工作:

/users/4hkjheqrnv501eltbg1px/rooms/4hkjheqrnv501eltbg1px-638red8osipedem08j1a6/

因此只有auth用户才能授予此会议室写入权限638red8osipedem08j1a6 4hkjheqrnv501eltbg1px

任何想法如何修改?

1 个答案:

答案 0 :(得分:0)

我认为您需要将房间地址拆分为数组,并查找用户ID是否在数组中:

"rooms": {
      "$roomId": {
        ".write": "auth != null && $roomId.split('-').indexOf(auth.uid) > -1"
      }
}