SDKsFlutter
获取指定用户资料
按 userID 批量查询应用用户公开资料(PublicUserInfo)。
按 userID 批量查询应用用户的公开资料,适合展示好友候选人和陌生人资料卡:
按昵称、手机号、组织或邮箱等业务字段检索用户时,可以先由业务后端返回候选 userID 列表,再调用本接口查询公开基础资料。
参数说明
| 参数 | 类型 | 是否必填 | 说明 |
|---|---|---|---|
userIDList | List<String> | 是 | 待查询公开资料的目标用户 ID 列表。建议在调用前去重并控制单次查询数量。 |
final userIDList = {'user_a', 'user_b'}.toList();
try {
final users = await OpenIM.iMManager.userManager.getUsersInfo(
userIDList: userIDList,
);
final usersByID = {
for (final user in users)
if (user.userID != null) user.userID!: user,
};
showUsers(usersByID);
} catch (error) {
logUserQueryFailure(error, userIDList);
rethrow;
}返回结果
Future 成功后返回公开用户信息列表(List<PublicUserInfo>):
| 字段 | 类型 | 说明 |
|---|---|---|
userID | String | OpenIMSDK 用户唯一 ID。 |
nickname | String? | 账号级公开昵称。 |
faceURL | String? | 账号级公开头像地址。 |
ex | String? | 账号级扩展字符串,格式由业务约定。 |
这里返回的 ex 仅用于读取其他账号的公开扩展资料。Flutter 客户端不能通过此接口修改其他账号的资料;当前登录用户自己的扩展字段修改请参考更新当前用户资料。
该查询为本地只读操作,不会触发用户相关的事件监听。打开资料卡、用户主动刷新、断线重连或业务通知资料变更时,可重新调用此接口拉取最新资料。
按场景选择展示数据
同一个 userID 在不同场景中可能对应不同的展示名称和关系数据,应按当前界面合理选择数据模型:
| 场景 | 优先使用 |
|---|---|
| 应用用户搜索、陌生人资料卡 | PublicUserInfo |
| 好友列表、联系人页、好友备注 | FriendInfo |
| 群成员列表、群内昵称、群角色 | GroupMembersInfo |
好友备注名和群内专属昵称分别来自好友关系与群成员资料,不应使用 PublicUserInfo.nickname 盲目覆盖。相关读取与维护方式请参考分页获取好友列表、查询指定好友资料和群成员查询概览。
这个页面有帮助吗?