编辑: 我可以按照以下方式进行操作,但我希望有一个更好的解决方案:
console.log((operatorUser.customClaims as any)['admin']);
console.log((operatorUser.customClaims as any).admin);
我正在尝试在可调用的云功能中检查用户的自定义声明。
尝试访问自定义声明时出现以下错误:
“元素隐式具有'any'类型,因为类型'” admin“'的表达式不能用于索引类型'Object'。 类型“对象”上不存在属性“ admin””
const operatorUser = await admin.auth().getUser(operatorUserDoc.id);
console.log(operatorUser.customClaims['admin']);
答案 0 :(得分:1)
类型签名最近得到了改进。如果您使用的是最新版本的SDK,则应该只需执行customClaims
即可访问声明。
有关更多上下文,请参见https://github.com/firebase/firebase-admin-node/issues/864。
答案 1 :(得分:0)
谢谢。这帮助我解决了另一个相关问题。
仅供参考,另一种在 firebase“实时数据库”云函数中访问调用用户声明的方法是直接从 context.auth:
const isAdmin = (context?.auth?.token as any)?.admin;