鸿蒙 HarmonyOS NEXT 5.0端云一体化开发-云数据库篇
·
一、概述
云数据库是一款端云协同的产品,对于端云数据的协同管理。
角色和权限
角色
| 角色 | query | upsert |
delete |
| 所有人 | √ | ||
| 认证用户 | √ | ||
| 数据创建者 | √ | √ | √ |
| 管理员 | √ | √ | √ |
注:可以根据实际需求更改权限
权限
- query(查询)
- upsert(增和改)
- delete(删)
二、初始化云数据库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.ets
class 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)
}
}
更多推荐


所有评论(0)