# 汪圈小程序 — 上线部署指南 ## 前置条件 1. 微信公众平台账号 → 注册小程序,记录 **AppID** 2. 开通 **微信云开发**,记录 **云环境 ID** 3. 安装 **微信开发者工具** (1.06+) 4. Node.js 16+ --- ## 第一步:填入配置 **a) `project.config.json`** ```json "appid": "你的小程序 AppID" ``` **b) `miniprogram/utils/constants.ts`** ```ts export const CLOUD_ENV = '你的云环境 ID' ``` --- ## 第二步:初始化云开发数据库 在微信开发者工具 → 云开发控制台 → 数据库,新建以下集合: | 集合名 | 权限设置 | 说明 | |--------|----------|------| | `users` | 所有用户可读,仅创建者可写 | 用户档案 | | `pets` | 所有用户可读,仅创建者可写 | 宠物档案 | | `posts` | 所有用户可读,仅创建者可写 | 帖子 | | `likes` | 仅创建者可读写 | 点赞记录 | | `comments` | 所有用户可读,仅创建者可写 | 评论 | | `follows` | 仅创建者可读写 | 关注关系 | | `messages` | 仅创建者可读写 | 私信 | | `topics` | 所有用户可读,仅管理员可写 | 话题热度 | **`posts` 集合需要建立以下索引:** - `authorId` (单字段) - `createdAt` (单字段,降序) - `location.latitude` + `location.longitude` (复合,附近功能) --- ## 第三步:部署云函数 在开发者工具中,右键每个云函数目录 → **上传并部署(云端安装依赖)**: ``` cloudfunctions/ ├── login ← 必须先部署 ├── getPosts ├── createPost ├── getNearbyPets ├── likePost ├── updateLocation └── sendGreeting ``` --- ## 第四步:配置云存储目录 云开发控制台 → 存储,无需额外配置,代码自动按以下路径上传: - `posts/` — 帖子图片 - `avatars/` — 用户头像 **建议设置存储 CDN 加速**(在控制台开启)。 --- ## 第五步:小程序隐私配置 在微信公众平台 → 设置 → 服务类目,选择:`社交 > 同城社交` 在 **「用户隐私保护指引」** 中声明以下数据使用: - 位置信息(附近功能) - 昵称、头像(展示用户身份) - 相机、相册(发帖上传图片) --- ## 第六步:本地调试 ```bash # 打开微信开发者工具 # 导入项目:选择 wangquan/ 目录 # 填入 AppID # 点击「编译」 ``` --- ## 环境变量清单 | 位置 | 字段 | 说明 | |------|------|------| | `project.config.json` | `appid` | 小程序 AppID | | `utils/constants.ts` | `CLOUD_ENV` | 云环境 ID | | `pages/login/login.ts` | `YOUR_PRIVACY_URL` | 隐私政策页面 URL | | `pages/login/login.ts` | `YOUR_TERMS_URL` | 用户协议页面 URL | --- ## 项目目录说明 ``` wangquan/ ├── miniprogram/ │ ├── app.ts/json/wxss # 全局入口、配置、样式 │ ├── pages/ │ │ ├── feed/ # 广场(信息流 + 故事圈) │ │ ├── nearby/ # 附近(地图 + 列表双视图) │ │ ├── post/ # 发布动态 │ │ ├── friends/ # 汪友(关注/粉丝) │ │ ├── profile/ # 我的(宠物档案 + 动态) │ │ ├── login/ # 登录授权 │ │ ├── pet-detail/ # 用户/宠物详情页 │ │ └── chat/ # 私聊 │ ├── components/ │ │ └── post-card/ # 帖子卡片(广场/我的复用) │ ├── custom-tab-bar/ # 自定义底部导航(含中间 FAB) │ ├── utils/ # api / auth / format / constants │ └── types/ # TypeScript 类型定义 └── cloudfunctions/ ├── login # 登录 → 自动创建用户 ├── getPosts # 帖子列表(关注/附近/热门) ├── createPost # 发帖(含话题统计) ├── getNearbyPets # 地理围栏查询附近用户 ├── likePost # 原子点赞/取消 ├── updateLocation # 心跳更新在线位置 └── sendGreeting # 打招呼(含 5min 防刷) ``` --- ## 后续扩展建议 - **评论系统**:`getComments` + `addComment` 云函数,参考 `getPosts` 结构 - **搜索**:云开发支持 `where._.all()` 全文检索,或接入腾讯云搜索 - **推送通知**:微信订阅消息 (`wx.requestSubscribeMessage`) - **宠物档案编辑**:新建 `pages/pet-edit/` 页面,调用 `updatePet` 云函数 - **性能优化**:为 `posts` 集合开启 CDN 缓存,大流量时接入腾讯云 COS 存储