Manage group members
Prerequisites
The managed hosting service is enabled by default.
Get members by role (paginated)
Use GroupChannel.createGroupMembersByRoleQuery() to retrieve channel members by role with pagination.
| Enum | Role |
|---|---|
undef | All roles |
normal | Channel member |
manager | Channel admin |
owner | Channel owner |
Dart
final query = GroupChannel.createGroupMembersByRoleQuery(
GroupMembersByRoleQueryParams(
groupId: 'groupId',
role: GroupMemberRole.undef,
pageSize: 20,
),
);
await query.loadNextPage((result, error) {
if (error == null) {
print('Members: ${result?.data}');
print('Total matched: ${result?.totalCount}');
}
});
GroupMembersByRoleQueryParams
| Parameter | Type | Default | Description |
|---|---|---|---|
groupId | String | Required | Group ID. |
role | GroupMemberRole | Required | Member role filter. |
pageSize | int | 20 | Members per page. |
isAscending | bool? | null | Sort order. true for ascending, false for descending. |
Get member info
Dart
final group = GroupChannel('groupId');
await group.getMembers(
['userId1', 'userId2'],
(members, error) {
if (error == null) {
print('Members: $members');
}
},
);
Set member info
Dart
final group = GroupChannel('groupId');
await group.setMemberInfo(
SetMemberInfoParams(
userId: 'userId',
nickname: 'New Nickname',
extra: '{"title":"VIP"}',
),
(error) {
if (error == null) {
print('Member info updated');
}
},
);
SetMemberInfoParams
| Parameter | Type | Default | Description |
|---|---|---|---|
userId | String | Required | Target member ID. |
nickname | String | '' | Group nickname for the member. |
extra | String | '' | Additional member metadata. |
Add channel admins
Dart
await group.addManagers(['userId1', 'userId2'], (error) {
if (error == null) {
print('Admins added');
}
});
Remove channel admins
Dart
await group.removeManagers(['userId1', 'userId2'], (error) {
if (error == null) {
print('Admins removed');
}
});
Follow channel members
Add, remove, or query followed members in a group. Followed members' messages bypass do not disturb settings.
Dart
// Add followed members
await group.addFavorites(['userId1', 'userId2'], (error) {
print('Favorites added');
});
// Remove followed members
await group.removeFavorites(['userId1', 'userId2'], (error) {
print('Favorites removed');
});
// Get followed members
await group.getFavorites((favorites, error) {
print('Favorites: $favorites');
});