Delete messages
Use the channel message deletion APIs to remove specific messages, clear history before a timestamp, or recall a sent message for all participants.
tip
BaseChannel.deleteLocalMessages()removes the specified messages from local storage only.channel.deleteMessages()deletes the specified messages in the current channel.channel.clearMessages()removes messages sent before a timestamp according toClearMessagesParams.policy.BaseChannel.deleteMessageForAll()recalls a sent message for all participants. The callback reports status througherror; the current Flutter wrapper does not return the recalledMessageobject.
Delete specific messages (local only)
Delete one or more messages from the local database.
Method
Dart
static Future<int> deleteLocalMessages(List<Message> messages, OprationHandler<List<Message>> handler)
Code example
Dart
final channel = DirectChannel('<target-user-id>');
await BaseChannel.deleteLocalMessages(
messages,
(List<Message>? deletedMessages, NCError? error) {
if (error == null) {
print('Messages deleted locally: ${deletedMessages?.length}');
}
},
);
Delete specific messages in a channel
Delete one or more messages in the current channel.
Method
Dart
Future<int> deleteMessages(List<Message> messages, ErrorHandler handler)
Dart
final channel = DirectChannel('<target-user-id>');
await channel.deleteMessages(
messages,
(error) {
if (error == null) {
print('Messages deleted');
}
},
);
Clear messages by timestamp
Clear all messages in a channel up to a specified timestamp.
Method
Dart
Future<int> clearMessages(ClearMessagesParams params, ErrorHandler handler)
Code example
Dart
final channel = DirectChannel('<target-user-id>');
await channel.clearMessages(
ClearMessagesParams(
timestamp: <cutoff-timestamp>, // 0 to clear all messages
policy: MessageOperationPolicy.localRemote,
),
(error) {
if (error == null) {
print('Messages cleared');
}
},
);
ClearMessagesParams
| Parameter | Type | Default | Description |
|---|---|---|---|
timestamp | int | Required | Messages sent before this timestamp are cleared. |
policy | MessageOperationPolicy | MessageOperationPolicy.local | Scope of the clear operation: local, remote, or localRemote. |
Recall a message for all participants
Dart
await BaseChannel.deleteMessageForAll(
message,
(_, error) {
if (error == null) {
print('Message recalled');
}
},
);