如何将Firebase安全令牌与安全规则中的自定义数据(数组)一起使用

如何将Firebase安全令牌与安全规则中的自定义数据(数组)一起使用,firebase,firebase-security,firebase-authentication,Firebase,Firebase Security,Firebase Authentication,我想建立一个聊天应用程序,聊天室管理员可以管理多个聊天室,并根据他们所在的组授予管理员权限。大多数域数据都在另一个数据库中,我想把它保存在那里。创建令牌时,我执行了以下操作: var token = tokenGenerator.createToken({ uid: "uniqueId1", groupIDs:[1,2,3] }); 在安全规则中,我想得到类似于auth对象是否具有groupID 2的内容。如果是,管理员可以进入房间。但是我不知道如何使用auth.groupIDs迭代fireb

我想建立一个聊天应用程序,聊天室管理员可以管理多个聊天室,并根据他们所在的组授予管理员权限。大多数域数据都在另一个数据库中,我想把它保存在那里。创建令牌时,我执行了以下操作:

var token = tokenGenerator.createToken({ uid: "uniqueId1", groupIDs:[1,2,3] });
在安全规则中,我想得到类似于auth对象是否具有groupID 2的内容。如果是,管理员可以进入房间。但是我不知道如何使用
auth.groupIDs
迭代firebase安全规则中的GroupID

我可能可以使用
var-token=tokenGenerator.createToken({uid:“uniqueId1”,1:true,2:true,5:true})而不是数组。但由于对象密钥是动态的,我不知道如何在安全规则中访问它们。有什么建议吗


谢谢

不要将此数据存储在令牌中,而是将其直接放入数据中,例如
/admins/$groupid/$uid/true
,然后使用
“root.child('admins').child($groupid).child(auth.uid).exists()”
。要使用当前结构,请尝试auth.groupid[$groupid]==true。然后,每次用户离开组时,例如,我都必须更新firebase集合。与在两个位置保持数据同步相比,使其令牌无效并重新生成要容易得多…解决方法是:我真的无法理解使身份验证令牌无效、注销用户、创建新的身份验证令牌以及重新登录用户是如何比
ref.remove()
简单,但我显然不理解您的用例。干杯