Search messages
Search by keyword
Use BaseChannel.createSearchMessagesQuery() to search for messages in a specific channel by keyword.
Code example
Dart
final query = BaseChannel.createSearchMessagesQuery(SearchMessagesQueryParams(
channel: ChannelIdentifier(
channelType: ChannelType.direct,
channelId: '<target-user-id>',
),
keyword: 'hello',
pageSize: 20,
));
await query.loadNextPage((result, error) {
if (error == null) {
print('Found ${result?.data.length} messages');
}
});
Search by keyword within a time range
Dart
final query = BaseChannel.createSearchMessagesByTimeRangeQuery(
SearchMessagesByTimeRangeQueryParams(
channel: ChannelIdentifier(
channelType: ChannelType.direct,
channelId: '<target-user-id>',
),
keyword: 'hello',
startTime: <start-timestamp>,
endTime: <end-timestamp>,
pageSize: 20,
),
);
await query.loadNextPage((result, error) {
if (error == null) {
print('Found ${result?.data.length} messages in time range');
}
});
Search by user ID
Dart
final query = BaseChannel.createSearchMessagesByUserQuery(
SearchMessagesByUserQueryParams(
channel: ChannelIdentifier(
channelType: ChannelType.group,
channelId: '<group-id>',
),
userId: '<sender-user-id>',
pageSize: 20,
),
);
await query.loadNextPage((result, error) {
if (error == null) {
print('Found ${result?.data.length} messages by user');
}
});
Search by message type
Dart
final query = BaseChannel.createSearchMessagesByTypeQuery(
SearchMessagesByTypeQueryParams(
channel: ChannelIdentifier(
channelType: ChannelType.direct,
channelId: '<target-user-id>',
),
messageTypes: [MessageType.image, MessageType.file],
keyword: '',
pageSize: 20,
),
);
await query.loadNextPage((result, error) {
if (error == null) {
print('Found ${result?.data.length} messages by type');
}
});