CloudBase 拓展
- 适用场景
- 组件组成
- 和 LeanDB 的区别
- 开发前准备工作
- CloudBaseAuth
- CloudBaseFunction
- CloudBaseMySQL
- CloudBaseNoSQL
- CloudBaseStorage
- 下载
- 参与讨论
CloudBase 拓展
CloudBase 拓展用于把腾讯云开发(CloudBase)的 BaaS 能力接入 App Inventor 应用。它提供身份认证、云函数、MySQL、文档数据库代理和云存储能力,适合需要云端账号体系、云端数据存储、文件上传下载和后端业务逻辑的 App。
这个拓展和 LeanDB 的理念相同,都是 BaaS(Backend as a Service,后端即服务):开发者不需要自己维护服务器,可以直接使用云平台提供的用户、数据库、文件和云函数能力。
截至 2026-04-27,LeanCloud 已公告 2026-01-12 起功能冻结,2027-01-12 正式停止对外服务。已经使用 LeanDB 的项目,可以把 CloudBase 作为迁移方向之一。官方公告见:LeanCloud 关于停止对外提供服务的通知。
适用场景
- 需要用户注册、登录、匿名登录、验证码登录。
- 需要把 App 数据保存到云端。
- 需要 MySQL 表级增删改查。
- 需要类似 LeanDB / LeanCloud Class 的云端对象存储(NoSQL文档数据库)。
- 需要上传文件,并在 App 中获取临时访问链接。
- 需要把复杂业务逻辑放到云函数中执行。
- 需要从 LeanDB 迁移到新的 BaaS 服务。
组件组成
导入 cn.fun123.CloudBase.aix 后,会出现 5 个可独立拖拽的不可见组件。
| 组件 | 作用 |
|---|---|
CloudBaseAuth |
身份认证:注册、登录、图片验证码、短信/邮箱验证码、Token管理、用户管理 |
CloudBaseFunction |
调用云函数,适合承接复杂业务逻辑 |
CloudBaseMySQL |
操作 CloudBase MySQL / REST 风格表数据,支持查询、插入、更新、删除、统计 |
CloudBaseStorage |
文件存储,支持上传、下载、获取临时访问链接和删除文件 |
CloudBaseNoSQL |
文档型数据库(NoSQL),直接通过 REST API 操作文档数据库集合,适合迁移 LeanDB Class/Object 类数据 |
和 LeanDB 的区别
| 对比项 | LeanDB / LeanCloud | CloudBase |
|---|---|---|
| 服务类型 | BaaS / Serverless 后端 | BaaS / Serverless 后端 |
| App Inventor 接入 | LeanDB 扩展 | CloudBase 扩展,拆成 5 个组件 |
| 控制台账号 | LeanCloud 账号 | 腾讯云 / CloudBase 账号 |
| 应用标识 | AppId、AppKey、REST API 服务器地址 |
EnvironmentId、Region,通过 Auth 属性共享凭证 |
| 用户体系 | 内建账户体系 | CloudBaseAuth |
| NoSQL 数据 | Class / Object | CloudBaseNoSQL,直接通过 REST API 操作集合 |
| MySQL | LeanDB MySQL | CloudBaseMySQL |
| 文件存储 | LeanCloud 文件 | CloudBaseStorage |
| 云端逻辑 | 云引擎 / 云函数 | CloudBaseFunction |
| 查询条件 | LeanCloud JSON 条件 | MySQL 使用 name=eq.张三 一类条件;文档数据库使用 MongoDB 风格 JSON 条件 |
LeanDB 到 CloudBase 的常用概念映射:
| LeanDB 旧概念 | CloudBase 新概念 |
|---|---|
| LeanCloud 应用 | CloudBase 环境 |
| AppId / AppKey | EnvironmentId / AccessToken(通过 Auth 属性共享) |
| Class | MySQL 表或文档数据库集合 |
| objectId | MySQL id 或文档 _id |
| Insert | Insert 或 InsertDocs |
| Query | Query 或 QueryDocs |
| Update | Update 或 UpdateDocs |
| Delete | Delete 或 DeleteDoc |
| File | UploadFile / GetFileUrl |
开发前准备工作
1. 注册和登录 CloudBase
- 打开腾讯云 CloudBase 控制台。
- 使用腾讯云账号登录;没有账号时先完成注册、实名认证和必要的服务授权。
- 创建一个测试环境,或选择已有环境。
2. 记录环境 ID
进入环境详情页,记录环境 ID。
国内环境通常使用 domestic,海外环境使用 international。

CloudBaseAuth
Component for CloudBaseAuth
匿名登录:

Properties
- AccessToken
- 访问令牌,登录成功后自动存储
- EnvironmentId
- CloudBase环境ID
- RefreshToken
- 刷新令牌,登录成功后自动存储
- Region
- 服务器地域:domestic(国内)或international(海外)
- Timeout
- HTTP请求超时时间(毫秒)
- UserId
- 用户ID,登录成功后自动存储
Events
- AnonymousSignInSuccess()
- 匿名登录成功。AccessToken已自动存储
- CaptchaDataSuccess(responseCode,data)
- 图片验证码获取成功。responseCode: HTTP响应码, data: 包含data(图片base64)、token(用于VerifyCaptchaData)、expires_in(过期秒数)
- CaptchaVerified(responseCode,data)
- 图片验证码校验成功。responseCode: HTTP响应码, data: 包含captcha_token(用于SendVerificationCode)、expires_in(过期秒数)
- CurrentUserSuccess(responseCode,data)
- 获取当前用户成功。responseCode: HTTP响应码, data: 当前用户信息JSON
- DeleteAccountSuccess(responseCode,data)
- 注销用户成功。responseCode: HTTP响应码, data: 接口返回结果
- RefreshTokenSuccess()
- 刷新Token成功。AccessToken/RefreshToken已自动更新
- RequestFailed(operation,errorCode,errorMessage)
- 请求失败。operation: 操作名称, errorCode: 错误码, errorMessage: 错误信息
- ResetPasswordSuccess(responseCode,data)
- 重置密码成功。responseCode: HTTP响应码, data: 接口返回结果
- SignInSuccess()
- 登录成功。AccessToken/RefreshToken/UserId已自动存储
- SignOutSuccess(responseCode,data)
- 退出登录成功。responseCode: HTTP响应码, data: 接口返回结果
- SignUpSuccess()
- 注册成功。AccessToken/RefreshToken/UserId已自动存储
- UpdatePasswordSuccess(responseCode,data)
- 修改密码成功。responseCode: HTTP响应码, data: 接口返回结果
- UpdateUserInfoSuccess(responseCode,data)
- 修改用户信息成功。responseCode: HTTP响应码, data: 接口返回结果
- ValidateTokenSuccess(responseCode,data)
- Token校验成功。responseCode: HTTP响应码, data: 包含token_type、client_id、sub等token信息
- VerificationCodeSent(responseCode,data)
- 验证码发送成功。responseCode: HTTP响应码, data: 包含verification_id等信息
- VerificationCodeVerified(responseCode,data)
- 验证码校验成功。responseCode: HTTP响应码, data: 包含verification_token等信息
Methods
- DeleteAccount()
- 注销当前用户(永久删除账号,不可恢复,需已登录)
- GetCaptchaData()
- 获取图片验证码。返回包含base64图片(Picture属性可直接显示)、token(用于VerifyCaptchaData)和过期时间
- GetCurrentUser()
- 获取当前登录用户信息
- RefreshAccessToken()
- 用上次登录保存的RefreshToken刷新AccessToken
- ResetPassword(email,phoneNumber,newPassword,verificationToken)
- 重置密码。email和phoneNumber二选一,verificationToken来自验证码校验接口
- SendVerificationCode(email,phoneNumber,captchaToken)
- 发送邮箱或短信验证码。email和phoneNumber二选一,captchaToken为VerifyCaptchaData返回的captcha_token(可为空表示不需要图片验证)
- SignInAnonymously()
- 匿名登录
- SignInWithPassword(username,password)
- 用户登录(用户名/密码)。username: 用户名, password: 密码
- SignInWithVerification(verificationToken)
- 用户登录(验证码)。verificationToken: 验证码token
- SignOut()
- 退出当前登录
- SignUpWithEmail(email,verificationToken,username,password)
- 用户注册(邮箱)。email: 邮箱, verificationToken: 验证码token, username: 用户名(可选), password: 密码(可选)
- SignUpWithPhone(phoneNumber,verificationToken,username,password)
- 用户注册(手机号)。phoneNumber: 手机号(如+86 13000000000), verificationToken: 验证码token, username: 用户名(可选), password: 密码(可选)
- UpdatePassword(oldPassword,newPassword)
- 修改密码(需已登录)。oldPassword: 旧密码, newPassword: 新密码(8-64位)
- UpdateUserInfo(nickname,username,avatarUrl)
- 修改用户信息(需已登录)。nickname/username/avatarUrl都可为空表示不修改
- ValidateToken()
- 检查当前AccessToken是否有效(需已登录)。成功返回token信息,失败表示token已过期
- VerifyCaptchaData(captchaToken,userInput)
- 校验图片验证码。captchaToken为GetCaptchaData返回的token,userInput为用户看到图片后输入的验证码文本。成功后返回captcha_token用于SendVerificationCode
- VerifyVerificationCode(verificationId,verificationCode)
- 验证邮箱或短信验证码。verificationId: 发送接口返回的ID, verificationCode: 用户输入的验证码
CloudBaseFunction
Component for CloudBaseFunction
Properties
- CloudBaseAuth
- 设置Auth组件引用,自动获取环境ID和AccessToken
Events
- FunctionSuccess(responseCode,data)
- 云函数调用成功。responseCode: HTTP响应码, data: 函数返回的数据
- RequestFailed(operation,errorCode,errorMessage)
- 请求失败。operation: 操作名称, errorCode: 错误码, errorMessage: 错误信息
Methods
- CallFunction(functionName,params)
- 调用云函数。functionName: 函数名, params: JSON参数(可为空)
CloudBaseMySQL
Component for CloudBaseMySQL
Properties
- CloudBaseAuth
- 设置Auth组件引用,自动获取环境ID和AccessToken
Events
- DeleteSuccess(responseCode,affectedRows)
- 删除成功。responseCode: HTTP响应码, affectedRows: 影响行数
- InsertSuccess(responseCode,data,affectedRows)
- 插入成功。responseCode: HTTP响应码, data: 插入后的数据, affectedRows: 影响行数
- QuerySuccess(responseCode,data,totalCount)
- 查询成功。responseCode: HTTP响应码, data: JSON结果, totalCount: 总记录数。接口未返回总数头时,会用返回数组长度兜底;select=count时读取count字段。
- RequestFailed(operation,errorCode,errorMessage)
- 请求失败。operation: 操作名称, errorCode: 错误码, errorMessage: 错误信息
- UpdateSuccess(responseCode,data,affectedRows)
- 更新成功。responseCode: HTTP响应码, data: 更新后的数据, affectedRows: 影响行数
Methods
- Count(table,where)
- 统计记录数量。table: 表名, where: WHERE条件(可为空)
- Delete(table,where)
- 删除记录。table: 表名, where: WHERE条件(必须提供)
- GetOne(table,where,select,orderBy)
- 取第一条记录。table: 表名, where: WHERE条件, select: 字段列表, orderBy: 排序
- Insert(table,data)
- 插入记录。table: 表名, data: JSON数据
- List(table,limit)
- 获取整表前N条数据。table: 表名, limit: 返回数量,<=0时不限制
- Query(table,where,select,orderBy,limit,offset)
- 完整查询。table: 表名, where: WHERE条件, select: 选择字段, orderBy: 排序, limit: 限制数量, offset: 偏移量
- QuerySimple(table,where)
- 简单查询。table: 表名, where: WHERE条件(如 “name=eq.张三&age=gte.18”)
- Update(table,where,data)
- 更新记录。table: 表名, where: WHERE条件(必须提供), data: 更新的JSON数据
CloudBaseNoSQL
Component for CloudBaseNoSQL
Properties
- CloudBaseAuth
- 设置Auth组件引用,自动获取环境ID和AccessToken
Events
- DeleteSuccess(responseCode,data)
- 删除成功。responseCode: HTTP响应码, data: 删除结果数据
- InsertSuccess(responseCode,data)
- 插入成功。responseCode: HTTP响应码, data: 插入结果数据
- QuerySuccess(responseCode,data,totalCount)
- 查询/统计成功。responseCode: HTTP响应码, data: 返回数据, totalCount: 文档数量
- RequestFailed(operation,errorCode,errorMessage)
- 请求失败。operation: 操作名称, errorCode: 错误码, errorMessage: 错误信息
- UpdateSuccess(responseCode,data)
- 更新成功。responseCode: HTTP响应码, data: 更新结果数据
Methods
- CountDocs(collection,queryJson)
- 统计文档数量。collection: 集合名, queryJson: 查询条件(可为空字符串统计全部)
- DeleteDoc(collection,documentId)
- 删除单个文档。collection: 集合名, documentId: 文档ID
- GetDoc(collection,documentId)
- 获取单个文档。collection: 集合名, documentId: 文档ID
- InsertDocs(collection,dataJson)
- 插入文档。collection: 集合名, dataJson: 文档数据(JSON对象或JSON数组)
- QueryDocs(collection,queryJson)
- 查询文档。collection: 集合名, queryJson: 查询条件JSON(如 {“name”:”张三”}),可为空字符串查询全部
- UpdateDocs(collection,queryJson,updateJson)
- 更新文档。collection: 集合名, queryJson: 查询条件(必须), updateJson: 更新操作(如 {“$set”:{“age”:20}})
CloudBaseStorage
Component for CloudBaseStorage
Properties
- CloudBaseAuth
- 设置Auth组件引用,自动获取环境ID和AccessToken
Events
- DeleteFileSuccess(responseCode,data)
- 删除文件成功。responseCode: HTTP响应码, data: 删除结果数据
- DownloadSuccess(responseCode,cloudPath,localFilePath,bytesWritten)
- 文件下载成功。responseCode: HTTP响应码, cloudPath: 云端路径, localFilePath: 本地保存路径, bytesWritten: 写入字节数
- GetUrlSuccess(responseCode,url)
- 获取文件链接成功。responseCode: HTTP响应码, url: 临时访问链接
- RequestFailed(operation,errorCode,errorMessage)
- 请求失败。operation: 操作名称, errorCode: 错误码, errorMessage: 错误信息
- UploadSuccess(responseCode,data)
- 文件上传成功。responseCode: HTTP响应码, data: 上传结果数据(含 cloudObjectId 和 downloadUrl)
Methods
- DeleteFile(cloudPath)
- 删除云文件。cloudPath: 云端路径(如 folder/file.jpg)或 UploadSuccess 返回的 cloudObjectId
- DownloadFile(cloudPath,localFilePath)
- 下载云文件并保存到手机。cloudPath: 云端路径(如 folder/file.jpg)或 UploadSuccess 返回的 cloudObjectId。localFilePath: 本地保存路径,支持 /storage/…、file://、content://
- GetFileUrl(cloudPath)
- 获取文件的临时访问链接,可以在Image图像组件中预览在线图片url。cloudPath: 云端路径或 cloudObjectId。成功后触发 GetUrlSuccess 事件。
- UploadFile(cloudPath,filePath)
- 上传本地文件到云存储。cloudPath 是云端相对路径,如 folder/file.jpg;filePath 是手机本地文件路径,支持 /storage/…、file://、content://。成功后 UploadSuccess 的 data 里包含 cloudObjectId 和 downloadUrl。
下载
- .aix 拓展下载:
- demo程序下载:
参与讨论
如有问题,请联系客服,或社区参与讨论。
扫码添加客服咨询