1 立意背景
M. 代表 “我”,U. 代表 “你”,这是一款用于记录情侣从相识、相知、相恋、见家长、文定直至结婚等各个阶段优美影象留存的应用程序。它旨在为情侣们提供一个专属的空间,让他们能够将一路走来的点点滴滴,如初次相遇时的心动刹时、逐渐了解彼此过程中的深入互换、甜蜜爱情时期的浪漫时刻、面对家长时的紧张与等待、文定时的喜悦以及结婚时的神圣幸福等,都以一种独特而有意义的方式记录下来。这款应用程序就像是一个装满贵重追念的宝库,随着时间的推移,见证着情侣们爱情旅程的每一个紧张阶段,成为他们优美爱情的永恒见证者和守护者。
2 HarmonyOS特性能力接入场景
我们团队开发的MU作品是一款用于记录,情侣之间相处时各个阶段照片的归集。提供欢迎页、用户无感知匿名登录,相册管理,用户信息查看等功能。
- 欢迎页快速相应:通过预加载服务,实现可更换欢迎页快速相应功能。
- 用户无感知匿名登录:我们利用初次启动应用程序天生的UUID作为主键,关联用户的unionId和openId,到达用户无论是卸载重装照旧冷启动,都能够快速相应用户数据信息。用户基本信息通过云数据库接口存储云端,用户头像通过云存储接口存入云端并更新对应的云数据库数据条目。
- 相册管理:利用云数据库和云存储服务实现相册的封面、标题、形貌、内容信息的留存。
3 作品资源
3.1 欢迎页
3.2 韶光轴
1)创建相册
2)上传照片
3.3 我的
4 一些理论性的知识要点
4.1 云数据库概述
云数据库是一款端云协同的数据库产品,是AGC云开发(AGC Serverless)关键服务之一,为AGC构建了MBaas(Mobile Backend as a Service,移动后端即服务)能力。云数据库提供了端云数据的协同管理、统一的数据模子和丰富的数据管理API接口等能力,端侧可以编写少量的代码实现AGC云端云数据库的交互。
云数据库接纳基于对象模子的数据存储结构,与常见的关系数据库(MySQL,Oracle等)类似,包含数据表、表字段、表字段值、主键,以及表利用权限。唯一不同在于存储区,数据以对象的情势存储在不同的存储区中,每一个对象,都是一条完整的数据记录。存储区是一个独立的数据存储区域,每个存储区拥有完全雷同的对象类型定义(也就是数据表),可以根据业务能力为不同用户划分不同的存储区。
云数据库对象类型、存储区以及数据,可以通过AGC控制台定义、创建和管理,也可以通过一站式集成开发工具DevEco Studio定义、创建和管理。云数据库支持多种数据类型,包括字符串、数值、文本、日期等。
云数据库还提供了多重数据安全计谋,基于隐私大概敏感数据的全程加密管理能力,加密字段的数据在端侧会被加密,然后再以密文情势发送并存储到云数据库中。同时,提供基于脚色的权限管理模子,预置4种脚色和3种权限,来包管数据的安全,同时简化了权限管理利用。
4.2 数据库模子概述
云数据库是一款基于对象模子的数据库,接纳存储区、对象类型和对象三级结构。每个应用在开通云数据库服务后,都会实例化一个云数据库实例,该实例中可以创建多个对象类型(数据表)、多个存储区。一个对象类型的数据可以对应一个存储区,也可以对应多个存储区。
- 对象类型(ObjectType):用于定义存储对象的集合,不同的对象类型对应的不同数据结构。每创建一个对象类型,云数据库会在每个存储区实例化一个与之结构相应的对象类型,用于存储对应的数据。
- 存储区(CloudDBZone):是一个独立的数据存储区域,多个数据存储区相互独立。每个存储区拥有完全雷同的对象类型定义,开发者可以根据业务必要自定义存储区中存储的对象。
- 对象(CloudDBZoneObject):是云数据库基本利用单元,每个对象,都是一条完整的数据记录。
4.2.1 数据类型
云数据库支持多种数据类型,如下表所示:
数据类型形貌取值范围说明String字符串类型最大长度200字符串长度凌驾200,请利用Text类型。Boolean布尔类型true:真;false:假。-Byte单字节整型-128 ~ +128-Short双字节整型-32,768 ~ +32,767-Integer四字节整型-2,147,483,648 ~ +2,147,483,647-Long八字节整型-9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807-Float单精度浮点数-3.40E+38 ~ +3.40E+38,6位十进制有效数字。-Double双精度浮点数-1.79E+308 ~ +1.79E+308,15位十进制有效数字。-ByteArray字节数组-一般用于文件类型的数据存储,如图片、文档和视频等。Text文本类型--Date日期类型--IntAutoIncrement自增类型,从1开始自增,Integet类型。1 ~ 2,147,483,647-LongAutIncrement自增类型,从1开始自增,Long类型。1 ~ 9,223,372,036,854,775,807- 4.2.2 权限管理
云数据库支持对所有用户的访问举行鉴权,保障应用数据的安全。云侧访问云数据库的用户脚色默认位管理员脚色,即从AGC控制台、云函数和Server端访问云数据库脚色,该脚色默认拥有所有权限。端侧为应用程序运行端,端侧的数据利用有严格的安全规则限制,其数据的读写权限根据云侧权限配置表举行控制。
云数据库预置4种脚色和3种权限,如下表所示:
脚色queryupsertdelete说明所有人✅✅✅代表所有用户,包含认证和非认证用户。该脚色默认拥有query权限,可自定义配置upsert和delete权限,但不建议将upsert和delete权限配置给所有人脚色。当对象类型中设置了加密字段之后,表现开启全程加密功能,此时所有人脚色将不会拥有query、upsert和delete权限,且不允许修改。认证用户✅✅✅经过AGC登录认证的用户。该脚色默认拥有query权限,可自定义配置upsert和delete权限。当对象类型中设置了加密字段之后,表现开启全程加密功能,此时认证用户脚色将不会拥有query、upsert和delete权限,且不允许修改。数据创建者✅✅✅经过认证的数据创建用户。该脚色默认拥有所有权限,且可自定义配置所有权限。每条数据都有其对应的数据创建人(即应用用户),每个数据创建者仅可以upsert大概delete本身创建的数据,不能upsert大概delete他人创建的数据。数据创建者的信息生存在数据记录的系统表中。管理员✅✅✅应用开发者,紧张是指通过AGC控制台或FaaS(Function as a Service,函数即服务)侧访问云数据库的脚色。该脚色默认拥有所有权限,且可自定义配置所有权限。管理员可以管理并配置其他脚色的权限。 5 创建一个存储「欢迎页信息」的对象类型
5.1 开发流程
利用端云一体化云侧工程开发云数据库流程为以下四步:
- 确保云数据库服务开通。
- 通过DevEco Studio工具在云侧工程创建一个用于存储数据条目标对象类型。
- 通过DevEco Studio工具在云侧工程为创建的对象类型添加数据,并配置数据所在存储区。
- 数据成功添加后,通过DevEco Studio工具提供的一键部署能力,将对象类型和数据条目部署到AGC云端。
5.2 确保云数据库服务开通
利用DevEco Studio预置的通用云开发模板创建的端云一体化工程,在工程初始化时,会自动开通云开发(Serverless)服务,若在开发工具主界面通知栏(Notifications)中表现服务开通失败,需按照以下步调举行开通个。
- 在打开的目标项目左侧导航栏选择“云开发(Serverless) > 云数据库”,进入云数据库页面,点击“立即开通”。
- 在开通云数据库时,若尚未设置默认数据处理惩罚位置,在弹出的”数据处理惩罚位置“窗口举行设置,细致阅读弹出提示框的文字说明后,在“启用”栏为您的项目勾选一个或多个数据处理惩罚位置,并在“设为默认”栏将此中一个设置为默认数据处理惩罚位置。
5.3 云侧创建对象类型
- 展开云侧工程目次,右击“clouddb/objecttype”目次,选择“New > Cloud DB Object Type”。
- 在弹出的新建对象类型窗口中输入对象类型名称(下文以“Welcome”为例)后,点击OK按钮完成创建。对象类型定名必须符合以下规范:
- 只能包含大小写字母,数字,下划线,并且至少包含字母类型。
- 必须以字母开头,以字母大概数字末端,不允许以“sqlite_”开头,不允许以下划线末端。
- 不允许利用如下系统保留名称:naturalbase_metadata、objecttypeinfohelper、t_data_upgrade_info、t_index_schema、t_nstore_config、t_schema_negotiate_info、t_metadata_schema、t_nstore_permission、t_system_config。
- DevEco Studio工具会根据通用云开发模板内置的对象类型模板新建对象类型JSON文件”Welcome.json“,并会在编码区自动打开该文件。文件结构属性包括对象类型名称(objectTypeName)、对象类型配置字段信息(fields)、对象类型索引信息(indexes)、对象类型脚色权限(permissions)。
- 根据业务必要在“fields”中配置对象类型字段信息,字段属性(必要满意的规范参见在“fileds”中为该对象类型配置字段信息)如下表所示。
参数必选(M)/可选(O)说明fieldNameM字段名称。filedTypeM字段的数据类型。belongPrimaryKeyO设置该字段是否为对象类型的主键,默认值为false。notNullO设置字段值是否为非空,默以为false。isNeedEncryptO设置字段是否必要加密,开启全程加密数据管理功能,默认值为false。isSensitiveO设置字段是否为敏感字段,默认值为false。defaultValueO字段为非空时,必须设置默认值。 例如:为“Welcom”对象类型配置如下字段:
filedNamefieldTypebelongPrimaryKeynotNullisNeedEncryptdefaultValueidIntegertruetrueimgStringstatusByte0createTimeDate- "fields": [
- {"fieldName": "id", "fieldType": "Integer", "notNull": true, "belongPrimaryKey": true},
- {"fieldName": "img", "fieldType": "String"},
- {"fieldName": "status", "fieldType": "Short", "defaultValue": 0},
- {"fieldName": "createTime", "fieldType": "Date"}
- ]
复制代码
- 根据业务必要在“indexes”中为该对象类型配置索引、索引包含的字段、以及索引包含的字段的排序方式。索引属性(必要满意的规范参见在“indexes”中为该对象类型配置索引)如下表所示。
参数必选(M)/可选(O)说明indexNameM索引名称。indexList > fieldNameM索引包含的字段。indexList > sortTypeM索引包含的字段的排序方式,支持升序或降序。 例如:为“Welcom”对象类型配置如下索引:
indexNamefieldNamesortTypeIND_202412101709idASCcreateTimeDESC- "indexes": [
- {
- "indexName": "IND_202412101709",
- "indexList": [
- {
- "fieldName": "id",
- "sortType": "ASC"
- },
- {
- "fieldName": "createTime",
- "sortType": "DESC"
- }
- ]
- }
- ]
复制代码
- 根据实际业务在“permissions”中设置各脚色是否具有该对象类型的Read、Upsert(包含新增和修改)和Delete权限。脚色权限属性(必要满意的规范参见在“permissions”中设置各脚色对象类型权限)如下表所示。
参数必选(M)/可选(O)说明roleM用户脚色。rightsM授予脚色的权限,包括Read、Upsert(包括新增和修改)和Delete权限。 例如:为“Welcom”对象类型各脚色配置权限:
脚色ReadUpsertDeleteWorld✅❌❌Authenticated✅✅❌Creator✅✅✅Administrator✅✅✅- "permissions": [
- {
- "role": "World",
- "rights": [
- "Read"
- ]
- },
- {
- "role": "Authenticated",
- "rights": [
- "Read",
- "Upsert"
- ]
- },
- {
- "role": "Creator",
- "rights": [
- "Read",
- "Upsert",
- "Delete"
- ]
- },
- {
- "role": "Administrator",
- "rights": [
- "Read",
- "Upsert",
- "Delete"
- ]
- }
- ]
复制代码 5.4 添加数据条目
如果在创建对象类型后,直接一键部署对象类型,会出现以下异常信息。发生这种异常信息是因为未在对象类型内添加数据条目。
- 为对象类型添加数据条目,并配置数据所在的存储区,当前支持手动创建和自动天生数据条目文件,建议利用DevEco Studio工具提供的自动天生数据条目文件。右击对象类型JSON文件,选择“Generate Data Entry”,依旧以对象类型“Welcome”为例,包含“id”、“img”、“status”、“createTime”六个字段。
- 在弹出的“New Cloud DB Data Entry”窗口内,为即将天生的数据条目文件定义名称。此处取默认值“d_Welcome”为例。
- 会根据DevEco Studio工具预置通用云开发模板提供的数据条目模板自动在“clouddb/dataentry”目次下为对象类型“Welcome”天生数据条目文件“d_Welcome”,该文件中已为开发者预置了默认的存储区,所属对象类型名称(“Welcome”),以及对象类型的字段名(“id”、“img”、“status”、“createTime”)。
- cloudDBZoneName:配置存储区名称,支持自定义,必要开发者记住存储区名称,在利用API访问云数据库时必要利用该值获取对象类型数据。
- objectTypeName:对象类型名称。
- objects:配置当前对象类型中所有字段的值,即写入数据。一个对象即为一条数据,可以通过新建一个对象来为字段赋新值,也可以修改某个对象下字段的值。必要留意的是,主键或加密字段的值不支持修改。
- {
- "cloudDBZoneName": "default",
- "objectTypeName": "Welcome",
- "objects": [
- {
- "id": 1,
- "img": "string1",
- "status": 0,
- "createTime": 1733835123302
- }
- ]
- }
复制代码 5.5 部署云数据库
完成对象类型创建以及对象类型数据条目创建后,开发者可以通过右击对象类型大概数据条目直接将对象类型和数据条目部署到AGC云端。DevEco Studio工具支持单个对象类型和数据条目部署,也支持批量部署。
- 单个对象类型部署,右击对象类型名称。若批量部署,必要右击“clouddb”目次,选择“Deploy Cloud DB”。
- 可以在开发工具主界面底部状态栏右侧查看云数据库打包与部署进度。
- 等待部署云数据库,直至出现“Deploy successfully”消息,表现云数据库已成功部署。
- 云数据库部署成功后,DevEco Studio工具会自动从AGC云端下载云数据库的schema文件,并将该文件存储在端侧工程“AppScope/resources/rawfile“目次,文件名称为”schema.json“,该文件是端侧API访问云数据库必须引入的配置文件。
5.6 查看云数据库部署情况
- 在DevEco Studio工具主界面顶部菜单栏选择“Tools > Cloud Dev”打开云开发管理面板。
- 如果开发工具尚未登录华为开发者账号,必要先登录授权才可以利用云开发管理面板能力。点击面板中的“CloudDev > Go to console”大概“Serverless > Cloud DB > Go to console”打开AGC控制台。两者区别在于第一种方式必要在AGC控制台页面点击左侧“云数据库”菜单,而第二种方式可以直接定位到AGC控制台云数据库子控制台。
- 分别点击“对象类型”、“存储区”与“数据”页签,查看通过DevEco Studio工具开发并部署的云数据库资源是否已经成功部署到AGC云端。
6 总结
本末节紧张对云数据库相关概念做了简单了解,并通过创建「欢迎页信息」对象类型具体讲解了利用一站式集成工具DevEco Studio开发、部署云数据库至AGC云端,同时提供了怎样查看部署到AGC云端的云数据库资源。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |