当前位置:网站首页>使用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);
}
}本篇内容就介绍到这里了,感谢阅读。
边栏推荐
- [0006] title, keyword and page description
- openGauss AI能力升级,打造全新的AI-Native数据库
- openGauss数据库JDBC环境连接配置(Eclipse)
- [system safety] XLII PowerShell malicious code detection series (4) paper summary and abstract syntax tree (AST) extraction
- 线程实战入门【硬核慎入!】
- Talk about the principle of QR code scanning login
- 【MongoDB】4. Usage specification of mongodb
- Failed to create pod sandbox: rpc error: code = Unknown desc = [failed to set up sandbox container..
- The most egregious error set of tone codes
- 一文教会你数据库系统调优
猜你喜欢
![[creation mode] single instance mode](/img/80/b90c7358de9670e9b07d28752efee5.png)
[creation mode] single instance mode
![[0006] title, keyword and page description](/img/28/973bdb04420c9e6e9a2331663c6948.png)
[0006] title, keyword and page description

你还不懂线程池的设计及原理吗?掰开揉碎了教你设计线程池

See from the minute, carve on the details: Exploration of SVG generated vector format website icon (favicon)

拿到20K我用了5年,面了所有大厂,这些高频面试问题都帮你们划出来啦

2022年软件测试的前景如何?需不需要懂代码?

05 _ 深入浅出索引(下)

验证码是自动化的天敌?阿里研究出了解决方法

Hard core analysis lazy single case

openGauss企业版安装
随机推荐
Shuttle -- hero component
【创建型模式】工厂方法模式
06 _ 全局锁和表锁 :给表加个字段怎么有这么多阻碍?
How can local retail release the "imprisoned value" and make physical stores grow again?
Exporting data using mysqldump
浅析分布式系统之体系结构-事务与隔离级别(多对象、多操作)下篇
数据库资源负载管理(下篇)
[azure application service] nodejs express + msal realizes the authentication experiment of API Application token authentication (AAD oauth2 idtoken) -- passport authenticate('oauth-bearer', {session:
Understanding of oauth2
What is the future of software testing in 2022? Do you need to understand the code?
企业开发如何写出优雅的二级分类【美团小案例】
了解下openGauss的密态支持函数/存储过程
19. insertion, deletion and pruning of binary search tree
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
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
Is it possible to use multiple indexes together in a query?
关于 JS 函数的一切
The server prevents repeated payment of orders
03 _ 事务隔离:为什么你改了我还看不见?
内存优化表MOT管理




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

