CloudBase 拓展:App接入腾讯云 BaaS(Backend as a Service,后端即服务)

« 返回首页

logo 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 账号
应用标识 AppIdAppKey、REST API 服务器地址 EnvironmentIdRegion,通过 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 InsertInsertDocs
Query QueryQueryDocs
Update UpdateUpdateDocs
Delete DeleteDeleteDoc
File UploadFile / GetFileUrl

开发前准备工作

1. 注册和登录 CloudBase

  1. 打开腾讯云 CloudBase 控制台
  2. 使用腾讯云账号登录;没有账号时先完成注册、实名认证和必要的服务授权。
  3. 创建一个测试环境,或选择已有环境。

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 拓展下载:

cn.fun123.CloudBase.aix

  • demo程序下载:

cloudbase_demo.aia

参与讨论

如有问题,请联系客服,或社区参与讨论

文档反馈