Java Firebase管理SDK未删除声明

Java Firebase管理SDK未删除声明,java,firebase,firebase-authentication,firebase-admin,Java,Firebase,Firebase Authentication,Firebase Admin,我开始使用Firestore管理SDK主要用于用户管理 我的问题是,我可以设置自定义声明,但无法删除声明(不是一个,也不是全部) 它将保持声明的原样,不会删除任何内容,只会添加内容 使用Springboot(Java11)和firestore管理sdk(最新版本) 你知道我现在应该尝试什么吗 日志/控制台/堆栈跟踪中没有错误 谢谢 作为记录,我正在更新用户2,同时与用户1进行身份验证。您如何检查更新的声明?您是否正在运行FirebaseAuth.getInstance().getUser(use

我开始使用Firestore管理SDK主要用于用户管理

我的问题是,我可以设置自定义声明,但无法删除声明(不是一个,也不是全部)

它将保持声明的原样,不会删除任何内容,只会添加内容

使用Springboot(Java11)和firestore管理sdk(最新版本)

你知道我现在应该尝试什么吗

日志/控制台/堆栈跟踪中没有错误


谢谢

作为记录,我正在更新用户2,同时与用户1进行身份验证。您如何检查更新的声明?您是否正在运行
FirebaseAuth.getInstance().getUser(userId)
并检查返回值?或者其他方式?@Hiranya首先我登录并获得一个新的令牌,然后我在jwt.io上决定了它,所以声明仍然存在。请通过在服务器端运行
getUser()
验证声明是否已实际删除。如果这表明声明已被删除,则问题出在您的客户端代码中。作为记录,我正在更新用户2,同时与用户1进行身份验证。您如何检查更新的声明?您是否正在运行
FirebaseAuth.getInstance().getUser(userId)
并检查返回值?或者其他方式?@Hiranya首先我登录并获得一个新的令牌,然后我在jwt.io上决定了它,所以声明仍然存在。请通过在服务器端运行
getUser()
验证声明是否已实际删除。如果这表明声明已被删除,那么问题出在客户端代码中。
Map<String, Object> newRoles = new HashMap<>();
userRoles.forEach((k,v) -> {
   for(var role : roles){
       if(k.equals(SecurityConfig.Roles.ROLE + role.getName())){
           break;
       }

       newRoles.putIfAbsent(k,v);
   }
});

FirebaseAuth.getInstance().setCustomUserClaims(userUid, newRoles);
    FirebaseAuth.getInstance().setCustomUserClaims(userUid, null);