要设置自定义声明,请使用:
admin.auth().setCustomUserClaims(uid,{claim:value});
确实存在
admin.auth().updateUser(uid,{claim:value});
...但我并不完全清楚这两者是如何不同的,似乎没有人真正删除以前应用的自定义声明。
答案 0 :(得分:4)
您可以通过为
IN
传递null来删除用户的自定义声明。
所以这应该删除声明:
%LET DX_27800_CODE = E6609,E661,E668,E669;
%LET DX_27801_CODE = E6601 ;
%LET DX_2859_CODE = D649 ;
%LET DX_6202_CODE = N8320,N8329;
data test;
set input;
array dx_code_list (4) $200 _temporary_ ("&dx_27800_code" "&dx_27801_code" "&dx_2859_code" "&dx_6202_code");
array dx_variable (4) dx_27800 dx_27801 dx_2859 dx_6202;
array dx dx1-dx3 ;
do i = 1 to dim(dx_variable);
dx_variable(i)=0;
do j=1 to dim(dx) while (dx_variable(i)=0);
if findw(dx_code_list(i),dx(j),',','it') then dx_variable(i)=1;
end;
end;
drop i j;
run;
答案 1 :(得分:0)
我认为您不能为此使用updateUser,我认为您仍然需要致电
admin.auth().setCustomUserClaims(uid, {claim:null});
答案 2 :(得分:0)
@FrankvanPuffelen's answer毫无疑问,在他回答时是正确的,但是从今天(2020年11月30日)开始,the updateUser
method的第二个参数称为properties
,是没有claim
属性的UpdateRequest
interface。
设置自定义声明现已移至the setCustomUserClaims
method。
您通过设置...来设置它们
admin.auth().setCustomUserClaims(uid, { admin: true });
...并且唯一可以删除一个对象的方法是将整个对象设置为null
。如果有多项,似乎没有办法选择性地删除一项。
admin.auth().setCustomUserClaims(uid, null);