基于腾讯 CloudBase 的小程序开发环境搭建

从 Supabase 过渡到 CloudBase:用 UniApp 快速搭起微信小程序的云开发环境

之前在团队内部分享过 Supabase,很多同事把它当作“开源版 Firebase”。 我自己也很喜欢它那种 PostgreSQL 为核心、能力全家桶 的感觉:认证、存储、API、边缘函数,一套就能把后端基础设施拉起来。

但这次我要做的是一个偏“生活化”的小项目:给女儿朗读打卡用的一个小程序。 手机录音 App 当然一大堆,但我想趁着 AI 辅助开发的东风,验证一下 手搓小程序 + 云后端 是否真的能跑起来。

于是就顺着“国内版 Firebase/Supabase”的路径,找到了腾讯 CloudBase(TCB)。


先简单说说 Supabase

Supabase 的定位很清晰:

一个基于 PostgreSQL 的开源后端服务平台(BaaS)。

它提供了一套很“现代”的能力组合:

  • 用户认证
  • 运维面板
  • 文件存储
  • 自动生成 API
  • 边缘函数
  • 消息推送

如果你的项目偏 Web、强调数据关系模型、又希望“开源可控”,Supabase 确实很香。


CloudBase 是什么

CloudBase 是腾讯云推出的云原生一体化后端服务平台,主打 Serverless + 小程序生态。 可以把它理解为:国内对标 Firebase/Supabase 的一体化 BaaS。

它的核心功能也很“全家桶”:

功能模块 说明 关键特点
云数据库 文档型数据库(类 MongoDB) 支持实时数据推送、事务与权限控制
云存储 图片、音视频等对象存储 自带 CDN,加速与权限可控
云函数 Serverless 函数 支持 Node/Python/PHP 等多语言
静态网站托管 H5/静态站点托管 自定义域名 + HTTPS
身份认证 内置用户系统 微信/QQ 等登录方式快速集成

一个比较直观的选择逻辑:

  • 做微信生态 / 小程序 / 原型验证:CloudBase 更省心。
  • 做复杂 Web / 关系模型 / 开源自控:Supabase 更顺手。

我这次明显是前者,所以就直接上 TCB 了。


项目搭建:UniApp + CloudBase

我个人比较熟 Vue 3,所以技术选型时选择了 UniApp。 本来准备在 HBuilderX 里起空项目,结果翻 TCB 文档时发现:

腾讯已经给了模板项目,而且还把各种 AI Coding 的环境都配好了。 说实话,这个“AI 原生后端一体化”的方向感很明显。

模板项目: https://github.com/TencentCloudBase/awesome-cloudbase-examples/tree/master

1. 下载模板

git clone git@github.com:TencentCloudBase/awesome-cloudbase-examples.git
cd awesome-cloudbase-examples/universal/cloudbase-uniapp-template
npm install

2. 申请账号并创建环境

  1. 前往 https://tcb.cloud.tencent.com/ 注册账号并完成认证。
  2. 环境管理 里新建环境。
  3. 个人版提供免费试用(官方文档写的是 6 个月),够你验证一轮了。

环境管理

3. 配置环境 ID

打开 src/utils/cloudbase.ts,替换你的环境 ID:

const ENV_ID = 'xxx-xxx-xxxxxxx'; // 替换为你的云开发环境ID

4. 运行项目

npm run dev:mp-weixin

5. 用微信开发工具打开

导入 dist/dev/mp-weixin

导入项目


登录能力验证与坑点

小程序登录默认是静默登录。 我这里做“获取 openid”的时候,遇到权限和绑定问题,流程大概是这样的:

登录问题

需要做的三件事

  1. manifest.json 里配置小程序 appid

配置 appid

  1. 账号绑定小程序(个人中心 → 账号信息)

账号绑定

  1. 微搭低代码 → 小程序认证

小程序认证

但我折腾完之后发现还是不一致。 最终的关键点是:必须在微信开发工具里完成云开发环境选择

选择云环境

  1. 在开发工具中选择对应环境

环境选择

这里官方也有一个解决方案帖子可以参考: https://cnb.cool/tencent/cloud/cloudbase/community/-/issues/753


小结

基于 CloudBase 的小程序开发环境搭起来并不复杂, 真正费时间的其实是“生态绑定”这件事:账号、认证、环境、工具链,每一步都要对上。

但一旦打通,其实体验还是很顺的。 对我来说,这次更多是一个“现实可用性验证”:

  • 能不能快速搭起来?能。
  • 能不能在微信生态里跑起来?能。
  • 能不能作为小型项目的后台?目前看也能。

后面如果有时间,我会把这个“朗读打卡小程序”的实现过程也整理出来。