You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Firebase Admin在服务端设置用户自定义userProperty的方法

服务端Firebase Admin SDK设置用户自定义字段解决方案

该需求完全可以在服务端实现,无需客户端参与。你需要使用Firebase Auth的**自定义用户声明(Custom Claims)**存储自定义字段,操作方式如下:


实现代码(承接你已有的代码逻辑)

FirebaseApp.Create(new AppOptions()
{
    Credential = GoogleCredential.FromFile("firebase-adminsdk.json"),
});

var fbUser= await FirebaseAuth.DefaultInstance.GetUserByPhoneNumberAsync("+91112324564");
UserRecordArgs args = new UserRecordArgs()
{
    // 必须指定待更新用户的UID
    Uid = fbUser.Uid,
    // 所有自定义字段存放在CustomClaims字典中,支持字符串、数字、布尔等基础类型
    CustomClaims = new Dictionary<string, object>()
    {
        // 替换为你的自定义字段键值对
        {"user_role", "admin"},
        {"member_expire_time", 1735689600},
        {"is_internal_user", false}
    }
    // 也可同时更新内置字段,例:
    // Email = "new_user@example.com",
    // Disabled = false
};

// 执行更新操作
var updatedUserRecord = await FirebaseAuth.DefaultInstance.UpdateUserAsync(args);

// 验证更新结果,打印已设置的自定义字段
foreach (var claim in updatedUserRecord.CustomClaims)
{
    Console.WriteLine($"{claim.Key}: {claim.Value}");
}

注意事项

  • 单个用户的自定义声明总大小不能超过1000字节,仅适合存储权限标记、身份标签这类小体量数据。如果需要存储大量用户业务属性,建议搭配Firestore或实时数据库存储对应数据,以用户UID作为关联键即可。
  • 更新完成后,自定义声明会自动嵌入用户的ID Token中,你可以在服务端校验Token时直接读取对应字段,也可在客户端解析ID Token获取自定义值。
  • 如果你需要设置的是Firebase Analytics的用户属性,Firebase Admin SDK不支持直接操作Analytics上报数据,你可以将自定义字段存储在Auth声明中,后续导出Analytics数据时通过用户UID做关联匹配即可。

内容的提问来源于stack exchange,提问作者yanivtwin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 19:27:03