Typescript 如何删除自定义索赔
我有一些自定义声明,比如Typescript 如何删除自定义索赔,typescript,firebase,firebase-authentication,firebase-admin,Typescript,Firebase,Firebase Authentication,Firebase Admin,我有一些自定义声明,比如 { claim1: true, claim2: true, } 我想取消一项索赔 { claim2: true, } 这里使用 admin.auth().updateUser(uid, {claim: null}); 但是更新用户没有索赔属性 如果我使用这个,这将删除前面的声明,并将其设置为null,而不是remove admin.auth().setCustomUserClaims(context.auth.uid, {claim1: null});
{
claim1: true,
claim2: true,
}
我想取消一项索赔
{
claim2: true,
}
这里使用
admin.auth().updateUser(uid, {claim: null});
但是更新用户没有索赔属性
如果我使用这个,这将删除前面的声明,并将其设置为null,而不是remove
admin.auth().setCustomUserClaims(context.auth.uid, {claim1: null});
使用获取用户UID的UserRecord。
从属性获取其现有自定义声明。
根据需要对其进行更改。
使用更新修改后的索赔。
删除有问题的索赔
admin.auth().getUser(uid).then((user) => {
const userCustomClaims = user.customClaims;
if (userCustomClaims["claim1"]) {
delete userCustomClaims["claim1"];
return admin.auth().setCustomUserClaims(user.uid, userCustomClaims);
}
}).catch((error) => {
console.error(error);
});
CMIIW看来你知道怎么做。有什么问题吗?你必须像删除对象的属性一样删除它。见下文。
admin.auth().getUser(uid).then((user) => {
const userCustomClaims = user.customClaims;
if (userCustomClaims["claim1"]) {
delete userCustomClaims["claim1"];
return admin.auth().setCustomUserClaims(user.uid, userCustomClaims);
}
}).catch((error) => {
console.error(error);
});