使用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
相关产品推荐
相关产品推荐

