# 生日提醒小程序 - 云开发部署检查清单 ## ✅ 部署前检查 ### 1. 环境准备 - [ ] 已注册微信小程序账号 - [ ] 已获取 AppID - [ ] 已开通云开发(环境ID:cloudbase-1gk3x0ia3a6b1f80) - [ ] 已创建订阅消息模板(模板ID:6J7Stt-lu7DKU6jblJ0nZGq_D81z5glnksf7qWfy5Yw) ### 2. 代码检查 - [ ] app.js 已初始化云开发 - [ ] app.js 中的环境ID正确 - [ ] add-anniversary.js 已添加订阅授权代码 - [ ] add-anniversary.js 中的模板ID正确 --- ## 📤 上传云函数 ### 1. login 云函数 ``` □ 右键点击 cloudfunctions/login □ 选择 "上传并部署:云端安装依赖" □ 等待上传成功 □ 在云开发控制台确认已上传 ``` ### 2. syncAnniversary 云函数 ``` □ 右键点击 cloudfunctions/syncAnniversary □ 选择 "上传并部署:云端安装依赖" □ 等待上传成功 □ 在云开发控制台确认已上传 ``` ### 3. sendReminder 云函数 ``` □ 右键点击 cloudfunctions/sendReminder □ 选择 "上传并部署:云端安装依赖" □ 等待上传成功 □ 在云开发控制台确认已上传 □ 确认定时触发器已自动创建 ``` **验证**: 云开发控制台 → 云函数,应该看到3个云函数: - ✅ login - ✅ syncAnniversary - ✅ sendReminder --- ## 🗄️ 创建数据库集合 ### 1. anniversaries 集合 ``` □ 进入云开发控制台 → 数据库 □ 点击"添加集合" □ 集合名称:anniversaries □ 权限设置:仅创建者可读写 □ 点击"确定" ``` ### 2. remind_logs 集合 ``` □ 点击"添加集合" □ 集合名称:remind_logs □ 权限设置:仅创建者可读写 □ 点击"确定" ``` **验证**: 云开发控制台 → 数据库,应该看到2个集合: - ✅ anniversaries - ✅ remind_logs --- ## ⏰ 配置定时触发器 ### 检查触发器 ``` □ 进入云开发控制台 → 云函数 → sendReminder □ 点击"触发器"标签 □ 确认存在 dailyReminder 触发器 □ 确认 Cron 表达式为:0 0 9 * * * * ``` ### 如果没有触发器,手动创建 ``` □ 点击"新建触发器" □ 触发器名称:dailyReminder □ 触发周期:自定义 □ Cron表达式:0 0 9 * * * * □ 点击"确定" ``` --- ## 🧪 功能测试 ### 1. 测试 openid 获取 ``` □ 打开小程序 □ 查看控制台日志 □ 应该看到:"获取openid成功: oABC..." □ 打开"存储" → 查看 Storage □ 应该看到 openid 已保存 ``` ### 2. 测试订阅消息授权 ``` □ 在真机上打开小程序(必须真机) □ 点击"添加纪念日" □ 填写表单,开启"是否提醒" □ 点击"保存" □ 应该弹出订阅消息授权弹窗 □ 点击"允许" □ 应该显示"添加成功" ``` ### 3. 测试数据同步 ``` □ 进入云开发控制台 → 数据库 → anniversaries □ 应该看到刚才添加的纪念日记录 □ 记录中包含 _openid 字段 □ 数据完整无误 ``` ### 4. 测试云函数 ``` □ 进入云开发控制台 → 云函数 → sendReminder □ 点击"测试" □ 输入参数:{} □ 点击"运行测试" □ 查看返回结果,应该包含: { "success": true, "total": 数字, "successCount": 数字, "failCount": 数字 } ``` ### 5. 测试订阅消息发送 **方法1:等待定时触发** ``` □ 添加一个明天的生日,提前1天提醒 □ 等到明天上午9:00 □ 应该收到订阅消息推送 ``` **方法2:手动触发(推荐)** ``` □ 添加一个今天的生日 □ 手动执行 sendReminder 云函数 □ 应该立即收到订阅消息推送 ``` **方法3:修改定时器(快速测试)** ``` □ 临时修改 Cron 为:0 */1 * * * * * □ 等待1分钟 □ 应该收到订阅消息推送 □ 测试完成后改回:0 0 9 * * * * ``` --- ## 🔍 验证清单 ### 控制台日志验证 ``` □ 看到:"云开发初始化成功" □ 看到:"获取openid成功" □ 看到:"订阅消息授权结果" □ 看到:"云端同步成功" ``` ### 数据库验证 ``` □ anniversaries 集合有数据 □ 数据包含 _openid 字段 □ remindEnabled 为 true □ personName 字段正确 ``` ### 提醒日志验证 ``` □ remind_logs 集合有记录 □ status 为 "success" □ sendDate 为今天 □ personName 正确 ``` ### 订阅消息验证 ``` □ 收到了微信服务通知 □ 消息内容正确 □ 称呼、日期、提示都显示正确 □ 点击消息能跳转到小程序 ``` --- ## 🐛 故障排查 ### 问题1:收不到订阅消息 **检查步骤**: ``` □ 确认用户已授权订阅 □ 确认 openid 已保存 □ 查看 sendReminder 云函数日志 □ 查看 remind_logs 是否有 failed 记录 □ 确认模板ID正确 □ 确认云函数权限包含 subscribeMessage.send ``` ### 问题2:云函数执行失败 **检查步骤**: ``` □ 查看云函数日志,查找错误信息 □ 确认依赖已安装(查看 node_modules) □ 确认 config.json 配置正确 □ 尝试重新上传云函数 ``` ### 问题3:数据没有同步到云端 **检查步骤**: ``` □ 确认 openid 已获取 □ 查看控制台是否有错误 □ 确认 syncAnniversary 云函数已上传 □ 手动测试 syncAnniversary 云函数 ``` ### 问题4:定时触发器不工作 **检查步骤**: ``` □ 确认触发器已创建 □ 确认 Cron 表达式正确 □ 查看云函数日志,确认有定时调用记录 □ 尝试手动触发云函数验证功能 ``` --- ## 📊 性能监控 ### 每日检查(可选) ``` □ 查看云函数调用次数 □ 查看订阅消息发送成功率 □ 查看 remind_logs 记录 □ 查看是否有异常日志 ``` ### 每周检查(可选) ``` □ 导出数据库备份 □ 清理过期的 remind_logs(可选) □ 查看云开发资源使用情况 ``` --- ## ✅ 部署完成确认 全部完成以下项目即表示部署成功: - [ ] 3个云函数全部上传成功 - [ ] 2个数据库集合创建成功 - [ ] 定时触发器配置成功 - [ ] 能够获取用户 openid - [ ] 订阅消息授权正常弹出 - [ ] 数据能够同步到云端 - [ ] 手动执行云函数成功 - [ ] 能够收到订阅消息推送 - [ ] 提醒日志正常记录 --- ## 🎉 恭喜部署成功! 你的生日提醒小程序现在具备: - ✅ 云端数据存储 - ✅ 自动推送提醒 - ✅ 多设备同步 - ✅ 安全可靠 **开始使用吧!** 🎂 --- ## 📞 需要帮助? 如果遇到问题: 1. 查看《云开发部署指南.md》 2. 查看《云开发功能说明.md》 3. 查看云开发控制台的错误日志 4. 联系技术支持