147 lines
4.6 KiB
Markdown
147 lines
4.6 KiB
Markdown
# 汪圈小程序 — 上线部署指南
|
||
|
||
## 前置条件
|
||
|
||
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 存储
|