After joining an Agora Chat channel, a user can update information such as the nickname, avatar, age, and mobile phone number as needed. These are known as user attributes.
This page shows how to use the Agora Chat SDK to implement managing user attributes.
The Agora Chat SDK uses ChatUserInfoManager
to retrieve, set, and modify user attributes. Followings are the core methods:
updateOwnInfo
: Set and update user attributes.fetchUserInfoById
: Retrieve the user attributes of the specified user.fetchOwnInfo
: Retrieve the user's own user attributes.Before proceeding, ensure that you meet the following requirements:
This section shows how to manage user attributes and contacts with the methods provided by the Agora Chat SDK.
Chat users can set and update their own attributes. Refer to the code example to set user attributes:
try {
ChatClient.getInstance.userInfoManager.updateUserInfo(userInfo);
} on ChatError catch (e) {
// Fails to update user attributes. See e.code for the error code, and e.description for the error description.
}
You can use fetchUserInfoById
to retrieve the user attributes of the specified users. For each method call, you can retrieve the user attributes of a maximum of 100 users.
Refer to the following code example:
List<String> list = ["tom", "json"];
try {
Map<String, ChatUserInfo> userInfos =
await ChatClient.getInstance.userInfoManager.fetchUserInfoById(list);
} on ChatError catch (e) {
// Fails to retrieve the user attributes. See e.code for the error code, and e.description for the error description.
}
Call fetchOwnInfo
to fetch the user attributes of the local user:
try {
ChatUserInfo? userInfo =
await ChatClient.getInstance.userInfoManager.fetchOwnInfo();
} on ChatError catch (e) {
// Fails to retrieve the user attributes of the current user. See e.code for the error code, and e.description for the error description.
}
This section introduces extra functions you can implement in your app using user attributes and contact management.
The Agora Chat SDK only supports storing the URL address of the avatar file rather than the file itself. To manage user avatars, you need to use a third-party file storage service.
To implement user avatar management in your app, take the following steps:
avatarUrl
parameter in user attributes as the URL address of the avatar file.fetchUserInfoById
to retrieve the URL of the avatar file, and then render the image on the local UI.