mcpField
O
offline-sync

offline-sync

github.com/abelv22开发0103 次安装今天更新
代码仓库

关于 offline-sync

此技能用于设计和实现离线优先同步,重点是缓存 Android 位置更新并同步到 Supabase。内容涵盖本地存储、后台上传、冲突处理与数据完整性。

主要功能

  1. 01使用 Room 和 SQLite 本地缓存
  2. 02通过 WorkManager 后台同步
  3. 03基于时间戳解决冲突
  4. 04批量上传到 Supabase
  5. 05连接监测与故障切换
  6. 06去重与队列管理

适用场景

  1. 01无网络时缓存位置更新
  2. 02网络恢复后上传排队记录
  3. 03通过批量请求降低电池消耗
  4. 04防止重复上传及队列膨胀

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/abelv22/project-foundation --skill offline-sync

安装后在 Claude Code 中输入/offline-sync确认已加载。

详细介绍

离线优先与数据同步专家技能

此技能使助手能够设计和实现可靠的同步系统,以解决“无离线队列”问题(P0)。

知识领域

1. 本地存储(原生)
  • Room 数据库: 在 Android 端实现本地 SQLite 存储,以缓冲位置更新。
  • 数据实体: 定义与 Supabase registros_reten 结构匹配的 OfflineLocation 架构。
2. 同步策略
  • 后台同步: 使用 WorkManager,在网络恢复时可靠地上传数据。
  • 冲突解决: 针对位置数据采用简单的基于时间戳的解决方案。
  • 批量上传: 通过单个 HTTP 请求向 Supabase 发送多条记录,以节省电量的策略。
3. 连接监控
  • 网络状态: 在 Web(React)和原生(Java)端响应连接状态变化。
  • 故障转移逻辑: 在直接连接 Supabase 和本地优先模式之间平稳切换。
4. 数据完整性
  • 去重: 确保同一个位置点不会被重复发送。
  • 队列管理: 如果设备长时间处于离线状态,则截断旧日志,以防止存储膨胀。

回复指南

  • 优先采用批量请求,以最大限度地提高电池效率。
  • 同步逻辑中始终包含网络故障的错误处理。
  • 对于 Web 层的任何复杂本地存储需求,建议使用Capacitor SQLite。
  • 确保遵守数据保留要求(删除已同步的记录)。

评论

支持 Markdown