如何删除自定义声明

时间:2019-09-04 21:29:32

标签: typescript firebase firebase-authentication firebase-admin

我有一些自定义声明,例如

{
  claim1: true,
  claim2: true,
}

我要删除一项索赔

{
  claim2: true,
}

In firebase authentication, is there a way to remove a custom claim?在这里使用

admin.auth().updateUser(uid, {claim: null});

但更新用户不具有Claim属性。

如果我使用此选项,则会删除之前的声明,并将其设置为null,而不是删除

admin.auth().setCustomUserClaims(context.auth.uid, {claim1: null});
{
  claim1: null,
}

2 个答案:

答案 0 :(得分:1)

  1. 使用getUser()获取用户的UID的UserRecord。
  2. customClaims属性中获取其现有的自定义声明。
  3. 根据需要对其进行更改。
  4. 使用setCustomUserClaims()更新修改后的声明。

答案 1 :(得分:0)

删除相关索赔。

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