鸿蒙 HarmonyOS NEXT 5.0端云一体化开发-云数据库篇
一、概述
云数据库是一款端云协同的产品,对于端云数据的协同管理。
角色和权限
角色
delete
注:可以根据实际需求更改权限
权限
- query(查询)
- upsert(增和改)
- delete(删)
二、初始化云数据库AppGallery Connect(AGC)
AppGallery Connect(AGC)
步骤一、开发AGC网站,进入到开发与服务中>选择需要端云一体化的项目
步骤二、点击左侧的云数据库开通云数据库服务
注:数据处理位置默认选择中国
步骤三、新建所需的对象类型、存储区
对象类型
注:默认每种对象类型都会附带id属性并且id为自增属性是每个对象的唯一标识
注:个人理解索引是可选项可以根据自己的需求,决定是否需要索引
注:选择数据权限,根据自身需求决定
存储区
导出两个必要文件
agconnect-services.json文件
schema.json文件
注:导出的文件需要重命名,并且每次对象类型版本发生改变是需要重新更新schema.json
留存Client ID
注:Client ID需要留存后续需要配置
步骤三、端侧调用云数据库
前提
TODO:添加环境依赖
// entry目录下的oh-package.json5// 路径 entry/oh-package.json5// 添加依赖\"dependencies\": { \"@hw-agconnect/auth\": \"^1.0.5\" }
TODO:开通网络权限
// 文件名:module.json5// 路径:src/main/module.json5 \"requestPermissions\": [ { \"name\": \"ohos.permission.INTERNET\" // 网络权限 }, ]
TODO:配置client_id
// 文件名 module.json5 // 路径 entry/src/main/module.json5 //配置client_id \"metadata\": [{ \"name\": \"client_id\", \"value\": \"项目应用的Client ID\" }]
TODO:在hap模块(一般为entry)导入agconnect-services.json文件和schema.json文件
TODO:初始化云端数据库
// 路径 entry/src/main/ets/entryability/EntryAbility.ets//初始化云端数据库onCreate(){ /** * 原有代码省略 */let file = this.context.resourceManager.getRawFileContentSync(\'agconnect-services.json\'); let json: string = buffer.from(file.buffer).toString(); auth.init(this.context, json);}
TODO:新建数据库对象类型文件(本次以 cloud.ets为例)
//路径 entry/src/main/ets/viewmodels/cloud.etsclass User { public id: number | undefined; public name: string | undefined; //类型要和云数据库中对应的对象类型一致 public naturalbase_ClassName(): string { return \"User\"; }}export {User}
步骤四、读取云数据库方法
export const xxxxx =async () => { try { const db=await cloudDatabase.zone(\'存储区名称\') const condition = new cloudDatabase.DatabaseQuery(数据库对象类型) const list =await db.query(condition) if (list.length) { return list } return Promise.reject(new Error(\'读取数据库失败\')) }catch (error) { AlertDialog.show({ message: error.message }) return Promise.reject(error) }}