用户信息托管
本文档介绍如何使用融云即时通讯 Flutter IMLib SDK 管理用户信息。您可以通过本文档了解用户信息的设置、查询、权限管理,以及信息变更的订阅与监听功能。
提示
此功能在 5.24.3 版本及以上支持。
开通服务
使用此功能前,您需要在融云控制台开通信息托管服务。
管理用户信息
您可以修改或查询自己的用户信息,也可以批量查询其他用户的信息。
设置用户信息
通过 updateMyUserProfile
方法修改自己的用户信息。
参数说明
参数 | 类型 | 说明 |
---|---|---|
profile | RCIMIWUserProfile | 待更新的用户信息对象 |
callback | IRCIMIWUpdateMyUserProfileCallback | 结果回调 |
下表为 RCIMIWUserProfile
的主要属性:
属性名 | 类型 | 说明 |
---|---|---|
name | String | 昵称,长度不超过 32 个字符 |
portraitUri | String | 头像地址,长度不超过 128 个字符 |
uniqueId | String | 用户应用号,支持大小写字母、数字,长度不超过 32 个字符。SDK 不支持设置此字段 |
email | String | Email,长度不超过 128 个字符 |
birthday | String | 生日,长度不超过 32 个字符 |
gender | RCIMIWUserGender | 性别:unknown 0、male 1、female 2 |
location | String | 所在地,长度不超过 32 个字符 |
role | int | 角色,0~100 内整数 |
level | int | 级别,0~100 内整数 |
userExtProfile | Map | 自定义扩展信息(Key/Value),Key:字母数字,不超过 32 个字符且在 AppKey 下唯一;Value:字符串,不超过 256 个字符 |
示例代码:
Dart
final RCIMIWUserProfile profile = RCIMIWUserProfile.create(
name: 'Tom',
portraitUri: 'https://example.com/avatar.png',
);
final IRCIMIWUpdateMyUserProfileCallback callback = IRCIMIWUpdateMyUserProfileCallback(
onSuccess: () {
// 更新成功
},
onError: (int? errorCode, List<String>? errorKeys) {
// 更新失败
},
);
final int? ret = await engine.updateMyUserProfile(profile, callback: callback);
批量获取用户信息
一次最多可查询 20 个用户的信息。
参数说明
参数 | 类型 | 说明 |
---|---|---|
userIds | List<String> | 用户 ID 列表,最多 20 个 |
callback | IRCIMIWGetUserProfilesCallback | 结果回调 |
Dart
final List<String> userIds = <String>["user1", "user2", "user3"];
final IRCIMIWGetUserProfilesCallback callback = IRCIMIWGetUserProfilesCallback(
onSuccess: (List<RCIMIWUserProfile>? users) {
// 查询成功
},
onError: (int? code) {
// 查询失败
},
);
final int? ret = await engine.getUserProfiles(userIds, callback: callback);
获取当前用户信息
参数说明
参数 | 类型 | 说明 |
---|---|---|
callback | IRCIMIWGetMyUserProfileCallback | 结果回调 |
Dart
final IRCIMIWGetMyUserProfileCallback callback = IRCIMIWGetMyUserProfileCallback(
onSuccess: (RCIMIWUserProfile? me) {
// 查询成功
},
onError: (int? code) {
// 查询失败
},
);
final int? ret = await engine.getMyUserProfile(callback: callback);