You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
2.1 KiB
2.1 KiB
chat_storage_sqlite
SQLite存储插件,用于存储聊天记录并支持分页查询。
功能特点
- 使用SQLite数据库存储聊天记录
- 提供分页查询功能,可指定获取对应页码的记录
- 支持按会话ID组织和查询聊天记录
- 提供添加、查询、删除等基本操作
使用方法
保存聊天记录
import 'package:chat_storage/chat_storage.dart';
// 保存一条聊天记录
final result = await ChatStorage.saveMessage(
sessionId: 'session_123',
message: '你好,这是一条测试消息',
sender: 'user',
metadata: '{"timestamp": 1630000000000}' // 可选的元数据,支持JSON字符串
);
if (result['success']) {
print('消息保存成功,ID: ${result['id']}');
} else {
print('消息保存失败: ${result['error']}');
}
获取聊天记录(支持分页)
// 获取指定会话的聊天记录,支持分页
final pagedResult = await ChatStorage.getMessages(
sessionId: 'session_123',
page: 1, // 当前页码,从1开始
pageSize: 20, // 每页记录数
);
// 使用结果
print('总记录数: ${pagedResult.totalCount}');
print('总页数: ${pagedResult.totalPages}');
print('当前页: ${pagedResult.page}');
// 遍历消息列表
for (var message in pagedResult.messages) {
print('ID: ${message.id}');
print('发送者: ${message.sender}');
print('内容: ${message.message}');
print('时间: ${message.timestamp}');
print('---');
}
删除聊天记录
// 方式1:删除指定ID的消息
final deleteResult1 = await ChatStorage.deleteMessages(
messageIds: [1, 2, 3],
);
// 方式2:删除整个会话的所有消息
final deleteResult2 = await ChatStorage.deleteMessages(
sessionId: 'session_123',
);
// 方式3:清空整个数据库
final clearResult = await ChatStorage.clearDatabase();
注意事项
- 插件会自动创建和管理SQLite数据库,无需手动初始化
- 所有操作都是异步的,请使用async/await处理返回结果
- 插件内部已处理异常情况,但建议在使用时添加适当的错误处理