AngularFirehasCustomClaim和customClaims无法工作
创始人
2024-10-24 21:01:45
0

在 Firebase Authentication 中,可以使用 Custom Claims 在用户身份认证时添加自定义数据,而 AngularFire 应该支持这些自定义声明的获取和设置。但是,在某些情况下(特别是在 v6 中),AngularFire 的 hasCustomClaim 和 customClaims 方法可能会出现问题,导致无法正常工作。

要解决此问题,可以使用 Firebase 的原生 SDK(而不是 AngularFire)来直接操作用户的声明。以下是一个示例代码:

import { AngularFireAuth } from "@angular/fire/auth";
import firebase from "firebase/app";

// ...

constructor(private afAuth: AngularFireAuth) {}

// ...

// 以异步方式获取当前用户的 ID token 和声明:
const { uid, accessToken } = (await this.afAuth.currentUser).toJSON();
const idTokenResult = await firebase.auth().currentUser.getIdTokenResult(accessToken);

// 获取或设置 Custom Claim:
const myCustomClaim = idTokenResult.claims["myCustomClaim"];
await firebase.auth().setCustomUserClaims(uid, { myCustomClaim: !myCustomClaim });

在这个示例中,我们首先使用 AngularFireAuth 获取我们的当前用户,然后获取他们的 ID token 和访问令牌。接下来,我们使用 Firebase 的原生 SDK 来获取 ID token 的声明,并使用 setCustomUserClaims 来更新用户的声明。

需要注意的是,您可能需要在 Firebase 控制台中启用 Custom Claims 才能使用此代码。您还可以针对您的应用程序编写更复杂的逻辑,以根据您自己的需要管理 Custom Claims。

总之,尽管 hasCustomClaim 和 customClaims 方法可能无法正常工作,但您仍然可以使用 Firebase SDK 来处理自定义声明。

相关内容

热门资讯

黑科技辅助挂!wepoker插... 黑科技辅助挂!wepoker插件下载,德普之星透视辅助软件,果然确实有挂(有挂透明挂)1、起透看视 ...
2026版攻略!aapoker... 2026版攻略!aapoker脚本怎么用,德普之星透视辅助软件激活码,切实确实有挂(有挂猫腻)1、德...
据文件显示!wepoker破解... 据文件显示!wepoker破解器有用吗,德普之星透视辅助软件,真是是有挂(有挂辅助)1、玩家可以在德...
此事迅速冲上热搜!wepoke... 此事迅速冲上热搜!wepoker怎么提高运气,德扑之星辅助工具如何设置,真是存在有挂(有挂教学)一、...
昨日!hardrock作弊,德... 昨日!hardrock作弊,德普之星透视辅助,都是确实有挂(的确有挂)1、德普之星透视辅助免费脚本咨...
突发!智星菠萝辅助,红龙pok... 突发!智星菠萝辅助,红龙poker辅助,确实真的是有挂(有人有挂)1、操作简单,无需智星菠萝辅助手机...
据统计!红龙poker有辅助吗... 据统计!红龙poker有辅助吗,德扑之星有透视辅助吗,确实真的有挂(有挂神器)1、玩家可以在德扑之星...
软件辅助挂!wepoker网页... 软件辅助挂!wepoker网页版透视方法,智星德州可以透视吗,切实是真的有挂(有挂解惑)软件辅助挂!...
教学辅助挂!wepoker透视... 教学辅助挂!wepoker透视底牌脚本,德普辅助软件,竟然是有挂(有挂透视)1、点击下载安装,德普辅...
来临!aapoker怎么提高中... 来临!aapoker怎么提高中牌率,红龙poker辅助,本来真的是有挂(有挂教学)1、玩家可以在红龙...