Skip to main content

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.

EnumRole
undefAll roles
normalChannel member
managerChannel admin
ownerChannel 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

ParameterTypeDefaultDescription
groupIdStringRequiredGroup ID.
roleGroupMemberRoleRequiredMember role filter.
pageSizeint20Members per page.
isAscendingbool?nullSort 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

ParameterTypeDefaultDescription
userIdStringRequiredTarget member ID.
nicknameString''Group nickname for the member.
extraString''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');
});