当前位置:网站首页>使用Cloud DB构建APP 快速入门-快游戏篇
使用Cloud DB构建APP 快速入门-快游戏篇
2022-06-11 15:36:00 【Gauss松鼠会】
快游戏的数据将会储存在云侧,本地不会缓存数据。在进行数据管理操作时,您将会直接操作云侧数据。快游戏SDK将会为您的应用与云数据库的通讯和通讯安全提供保障。
使用Cloud DB构建快游戏,需要完成以下准备工作:
- 您已经在开发者联盟官网注册帐号并通过实名认证,详细请参见帐号注册认证。
- 完成开发环境的搭建,包括在PC上安装cocos creator、在调试快游戏的安卓手机上安装快游戏加载器,详细参见安装开发工具。
- 在AppGallery Connect控制台上完成快游戏的创建,详细参见创建快游戏。
- 生成指纹证书,详细参见“生成指纹证书”。
- 您已经获取到示例代码,请从示例代码获取。
启用服务
使用Cloud DB服务前,您需要先启用服务。
- 登录AppGallery Connect网站,选择“我的项目”。
- 在项目列表页面中选择项目,单击项目下需要启用云数据库服务的应用。
- 在导航树上选择“构建 > 云数据库”。
- 单击“立即开通”,开通云数据库服务。

- (可选)如您还未选择数据处理位置,需要您先设置数据处理位置,具体操作请参见设置数据处理位置。

- 服务初始化成功后,即启用云数据库服务成功。
新增和导出对象类型
您需要基于AppGallery Connect控制台创建对象类型,请您遵循操作步骤创建示例中涉及的对象类型,并导出用于快游戏开发的json格式和js格式对象类型文件。不允许修改导出的json格式和js格式文件,否则会导致数据同步功能异常。
- 登录AppGallery Connect网站,选择“我的项目”。
- 在项目列表页面中选择项目,单击项目下需要创建对象类型的应用。
- 在导航树上选择“构建 > 云数据库”。
- 单击“新增”,进入创建对象类型页面。

- 输入对象类型名为“BookInfo”后,单击“下一步”。
- 单击
,新增如下字段后,单击“下一步”。
表1 字段定义表 字段名称
类型
主键
非空
加密
默认值
id
Integer
√
√
–
–
bookName
String
–
–
–
–
author
String
–
–
–
–
price
Double
–
–
–
–
publisher
String
–
–
–
–
publishTime
Date
–
–
–
–
shadowFlag
Boolean
–
–
–
true
- 单击
,设置索引名为“bookName”,索引字段为“bookName”后,单击“下一步”。 - 按照如下要求设置各角色权限后,单击“下一步”。
表2 权限配置表 角色
query
upsert
delete
所有人
√
–
–
认证用户
√
√
√
数据创建者
√
√
√
管理员
√
√
√
- 单击“确定”。
创建完成后返回对象类型列表中,可以查看已创建的对象类型。
- 单击“导出”。

- 导出“json格式”和“js格式”文件,导出的文件在后续步骤用于添加至本地开发环境。
- 导出json格式文件
- 选择“json格式”。
- 单击“导出”。
- 导出js格式文件
- 选择“js格式”。
- 选择js文件类型,选择“quickGame”。
- 单击“导出”。
- 导出json格式文件
新增存储区
您可基于AppGallery Connect控制台在云侧创建数据存储区,请您遵循操作步骤创建一个存储区名称为“QuickStartDemo”的存储区。
- 登录AppGallery Connect网站,选择“我的项目”。
- 在项目列表页面中选择项目,单击项目下需要创建存储区的应用。
- 在导航树上选择“构建 > 云数据库”。
- 选择“存储区”页签。
- 单击“新增”,进入创建存储区页面。

- 输入存储区名称为“QuickStartDemo”。
- 单击“确定”。
创建完成后返回存储区列表中,可以查看已创建的存储区。
配置开发环境
- 打开cocos creator,其目录示例如下。

- 配置应用信息。
- 登录AppGallery Connect网站,选择“我的项目”。
- 在项目列表页面中选择项目,单击项目下的应用。
- 选择“常规”页签,下载配置文件“agconnect-services.json”,并拷贝到您的快游戏项目assets/Script目录下,建议单独创建目录存放。
- 在function文件中添加agconnect-services.json文件引用。
import * as context from './agconnect-services.json';
- 集成快游戏SDK。下载快云数据库服务的快游戏SDK,并将SDK js脚本导入至项目中的assets/Script目录下,建议单独创建目录存放。并将所有SDK js脚本设置“导入为插件”,具体步骤为:
添加对象类型文件
在开发应用时,可直接将AppGallery Connect控制台上导出的json格式和js格式文件添加至本地开发环境,并通过AGConnectCloudDB类中的createObjectType()方法实现对象类型的定义和创建。您在进行本地应用开发时,无需再次创建对象类型。
- 将已在AppGallery Connect控制台上导出的全部json格式和js格式文件添加至本地开发环境。
- 初始化Cloud DB,通过AGConnectCloudDB类中的createObjectType()方法实现对象类型的定义和创建,详细请参见初始化。
初始化
在添加对象类型文件后,您就可以使用云数据库进行应用开发。您开发应用时,需要先执行初始化操作,初始化AGConnectCloudDB、创建Cloud DB zone和对象类型。
- 通过initialize()方法初始化AGConnectCloudDB。
agconnect.cloudDB.AGConnectCloudDB.initialize(context); - 通过getInstance()方法获取AGConnectCloudDB实例,并使用createObjectType()创建对象类型。
const schema = require('./BookInfo.json'); const agcCloudDB = agconnect.cloudDB.AGConnectCloudDB.getInstance(); agcCloudDB.createObjectType(schema); - 打开Cloud DB zone。
const config = new agconnect.cloudDB.CloudDBZoneConfig('QuickStartDemo'); const cloudDBZone = await agcCloudDB.openCloudDBZone(config);
写入数据
在本节主要介绍如何在应用程序中进行数据写入操作,如下所示,使用executeUpsert()实现数据的写入。
async function executeUpsert (book) {
try {
const cloudDBZoneResult = await cloudDBZone.executeUpsert(book);
console.log('upsert' + cloudDBZoneResult + 'record' );
} catch (e) {
conso.log(e);
}
}查看数据
数据查询和排序
通过executeQuery()实现异步方式查询数据。
async function executeQuery() {
try {
const query = agconnect.cloudDB.CloudDBZoneQuery.where(BookInfo);
const snapshot = await cloudDBZone.executeQuery(query);
const resultArray = snapshot.getSnapshotObjects();
console.log(resultArray);
} catch(e) {
console.log(e);
}
}通过查询与limit()方法组合,实现限制查询数据显示条数的功能;与orderByAsc()方法或者orderByAsc()方法组合来实现数据的排序功能。
async function executeQueryWithOrder (object) {
const query = agconnect.cloudDB.CloudDBZoneQuery.where(BookInfo);
if (object.name.length > 0) {
query.equalTo('bookName', object.name);
}
if (parseFloat(object.minPrice) > 0) {
query.greaterThanOrEqualTo('price', parseFloat(object.minPrice));
}
if (parseFloat(object.maxPrice) > 0 && parseFloat(object.maxPrice) > parseFloat(object.minPrice)) {
query.lessThanOrEqualTo('price', parseFloat(object.maxPrice));
}
if (parseInt(object.bookCount) > 0) {
query.limit(parseInt(object.bookCount));
}
query.orderByAsc('id');
try {
const snapshot = await cloudDBZone.executeQuery(query);
console.log(snapshot.getSnapshotObjects());
return snapshot.getSnapshotObjects();
} catch (e) {
console.log(e);
}
}本篇内容就介绍到这里了,感谢阅读。
边栏推荐
- [creation mode] abstract factory mode
- 英伟达终于开源GPU内核模块代码,网友:难以置信
- 05 _ In simple terms index (Part 2)
- 见微知著,细节上雕花:SVG生成矢量格式网站图标(Favicon)探究
- Design and implementation of data analysis system
- openGauss数据库闪回功能验证
- 测试9年,面试华为要薪1万,华为员工:公司没这么低工资的岗
- 【创建型模式】建造者模式
- The research results of Professor xuweixin from the school of atmosphere of Sun Yat sen University on extreme precipitation caused by weak convection were reported by science highlights
- Failed to create pod sandbox: rpc error: code = Unknown desc = [failed to set up sandbox container..
猜你喜欢
![[creation mode] builder mode](/img/8d/989c69772502a3ccda320025236e46.png)
[creation mode] builder mode

硬核分析懒汉式单例

Implementation of the function of recording login status

一文教会你数据库系统调优

I have used 20K for 5 years and met all major manufacturers. These high-frequency interview questions have helped you figure out

Devil cold rice # 037 devil shares the ways to become a big enterprise; Female anchor reward routine; Self discipline means freedom; Interpretation of simple interest and compound interest

Qcustomplot 1.0.1 learning (3) - plotting quadratic functions

IDEA2021.1版本安装教程

After nine years of testing, the salary for interviewing Huawei is 10000. Huawei employees: the company doesn't have such a low salary position

验证码是自动化的天敌?阿里研究出了解决方法
随机推荐
测试9年,面试华为要薪1万,华为员工:公司没这么低工资的岗
openGauss企业版安装
How to batch insert 100000 pieces of data
[mysql_11] addition, deletion and modification of data processing
MySQL user authority summary [user authorization required]
openGauss简单查询SQL的执行流程解析
使用gsql连接数据库
How to do well in we media? Did you do these steps right?
将配置导出到FTP或TFTP服务器
Introduction and use of etcd
openGauss数据库性能调优概述及实例分析
openGauss 3.0.0版本正式发布,立即体验社区首个轻量版本
2022年软件测试的前景如何?需不需要懂代码?
Implementation of placing the scroll bar on the top of the uniapp
The most egregious error set of tone codes
leetcode 120. Triangle minimum path sum
07 _ Functions and disadvantages of row lock: how to reduce the impact of row lock on performance?
ASEMI的MOS管24N50参数,24N50封装,24N50尺寸
uniapp滚动条置顶实现
ASEMI的MOS管25N120在不同应用场景的表现




,设置索引名为“bookName”,索引字段为“bookName”后,单击“下一步”。

