Files
PetCommunity/SETUP.md
2026-06-05 17:46:51 +08:00

147 lines
4.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 汪圈小程序 — 上线部署指南
## 前置条件
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 存储