使用Cloud DB构建APP 快速入门-快游戏篇

快游戏的数据将会储存在云侧,本地不会缓存数据。在进行数据管理操作时,您将会直接操作云侧数据。快游戏SDK将会为您的应用与云数据库的通讯和通讯安全提供保障。

使用Cloud DB构建快游戏,需要完成以下准备工作:

  • 您已经在开发者联盟官网注册帐号并通过实名认证,详细请参见帐号注册认证
  • 完成开发环境的搭建,包括在PC上安装cocos creator、在调试快游戏的安卓手机上安装快游戏加载器,详细参见安装开发工具
  • 在AppGallery Connect控制台上完成快游戏的创建,详细参见创建快游戏
  • 生成指纹证书,详细参见“生成指纹证书”。
  • 您已经获取到示例代码,请从示例代码获取。

启用服务

使用Cloud DB服务前,您需要先启用服务。

  1. 登录AppGallery Connect网站,选择“我的项目”。
  2. 在项目列表页面中选择项目,单击项目下需要启用云数据库服务的应用。
  3. 在导航树上选择“构建 > 云数据库”。
  4. 单击“立即开通”,开通云数据库服务。
  5. (可选)如您还未选择数据处理位置,需要您先设置数据处理位置,具体操作请参见设置数据处理位置

  6. 服务初始化成功后,即启用云数据库服务成功。

新增和导出对象类型

您需要基于AppGallery Connect控制台创建对象类型,请您遵循操作步骤创建示例中涉及的对象类型,并导出用于快游戏开发的json格式和js格式对象类型文件。不允许修改导出的json格式和js格式文件,否则会导致数据同步功能异常。

  1. 登录AppGallery Connect网站,选择“我的项目”。
  2. 在项目列表页面中选择项目,单击项目下需要创建对象类型的应用。
  3. 在导航树上选择“构建 > 云数据库”。
  4. 单击“新增”,进入创建对象类型页面。

  5. 输入对象类型名为“BookInfo”后,单击“下一步”。
  6. 单击

    ,新增如下字段后,单击“下一步”。

    表1 字段定义表

    字段名称

    类型

    主键

    非空

    加密

    默认值

    id

    Integer

    bookName

    String

    author

    String

    price

    Double

    publisher

    String

    publishTime

    Date

    shadowFlag

    Boolean

    true

  7. 单击,设置索引名为“bookName”,索引字段为“bookName”后,单击“下一步”。
  8. 按照如下要求设置各角色权限后,单击“下一步”。

    表2 权限配置表

    角色

    query

    upsert

    delete

    所有人

    认证用户

    数据创建者

    管理员

  9. 单击“确定”。

    创建完成后返回对象类型列表中,可以查看已创建的对象类型。

  10. 单击“导出”。

  11. 导出“json格式”和“js格式”文件,导出的文件在后续步骤用于添加至本地开发环境。
    • 导出json格式文件
      1. 选择“json格式”。
      2. 单击“导出”。
    • 导出js格式文件
      1. 选择“js格式”。
      2. 选择js文件类型,选择“quickGame”。
      3. 单击“导出”。

 

新增存储区

您可基于AppGallery Connect控制台在云侧创建数据存储区,请您遵循操作步骤创建一个存储区名称为“QuickStartDemo”的存储区。

  1. 登录AppGallery Connect网站,选择“我的项目”。
  2. 在项目列表页面中选择项目,单击项目下需要创建存储区的应用。
  3. 在导航树上选择“构建 > 云数据库”。
  4. 选择“存储区”页签。
  5. 单击“新增”,进入创建存储区页面。

     

  6. 输入存储区名称为“QuickStartDemo”。
  7. 单击“确定”。

    创建完成后返回存储区列表中,可以查看已创建的存储区。

配置开发环境

  1. 打开cocos creator,其目录示例如下。

  2. 配置应用信息。
    1. 登录AppGallery Connect网站,选择“我的项目”。
    2. 在项目列表页面中选择项目,单击项目下的应用。
    3. 选择“常规”页签,下载配置文件“agconnect-services.json”,并拷贝到您的快游戏项目assets/Script目录下,建议单独创建目录存放。
    4. 在function文件中添加agconnect-services.json文件引用。
       
      import * as context from './agconnect-services.json';

  3. 集成快游戏SDK。下载快云数据库服务的快游戏SDK,并将SDK js脚本导入至项目中的assets/Script目录下,建议单独创建目录存放。并将所有SDK js脚本设置“导入为插件”,具体步骤为:
    1. 资源管理器中单击选中js脚本。
    2. 选中属性检查器中的"导入为插件"。
    3. 单击属性检查器右上角的“应用”按钮。

添加对象类型文件

在开发应用时,可直接将AppGallery Connect控制台上导出的json格式和js格式文件添加至本地开发环境,并通过AGConnectCloudDB类中的createObjectType()方法实现对象类型的定义和创建。您在进行本地应用开发时,无需再次创建对象类型。

  1. 将已在AppGallery Connect控制台上导出的全部json格式和js格式文件添加至本地开发环境。
  2. 初始化Cloud DB,通过AGConnectCloudDB类中的createObjectType()方法实现对象类型的定义和创建,详细请参见初始化

初始化

在添加对象类型文件后,您就可以使用云数据库进行应用开发。您开发应用时,需要先执行初始化操作,初始化AGConnectCloudDB、创建Cloud DB zone和对象类型。

  1. 通过initialize()方法初始化AGConnectCloudDB。
     
    agconnect.cloudDB.AGConnectCloudDB.initialize(context);

  2. 通过getInstance()方法获取AGConnectCloudDB实例,并使用createObjectType()创建对象类型。
     
    const schema = require('./BookInfo.json');
    const agcCloudDB =  agconnect.cloudDB.AGConnectCloudDB.getInstance();
    agcCloudDB.createObjectType(schema);

  3. 打开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);
    }
}

本篇内容就介绍到这里了,感谢阅读。

  • 25
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Gauss松鼠会

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值