如何在小游戏制作工具中使用云数据库持久保存用户的数据

简介: 前言这可能是你能从网上找到的唯一一篇在微信小游戏制作工具中使用云数据库的教程了。通过这篇教程你将能学会如何在小游戏制作工具中使用云数据库添加,更新和查询玩家的数据。使用云数据库保存玩家数据的好处是,当你每次更新小游戏时,玩家都能够获取到之前保存的游戏数据,继续进行游戏。

上一节我们讲了如何在小游戏制作工具中使用云函数,这一节我们继续拓展一下,通过使用云函数调用数据库来实现玩家数据的持久存储。


一个游戏中包含各种类型的数据,有些数据不需要持久存储,如玩家的偏好设置,选择的背景音乐,主题等等,这些数据我们可以通过使用缓存插件来将数据存储在本地(有关缓存插件的使用方法,可以参考这篇文章),但是有些数据就需要持久存储,例如玩家的获得的最高分,以及玩家闯过的关卡等。


对于微信小游戏来讲,缓存在本地的数据会在游戏更新时被清除掉,如果每次更新游戏,玩家之前的游戏数据都被抹除,都需要重新玩的话,体验非常的不好。


所以今天我们就来讲一下云开发中的数据库的使用,通过使用云数据我们可以持久的存储玩家的数据,这样每次游戏更新时,玩家都可以从云数据库中获取到自己的游戏数据,继续进行游戏了。


本教程的学习前提需要你已经了解如何在小游戏制作工具中使用云函数,如果不了解的话请移步这里学习。


首先,我们登陆云开发的后台,选择数据库新建一个集合,命名为playerdata,用于存储玩家的数据。

image.png

接下来我们需要了解几个重要的概念,一个是集合,一个是集合中的数据 id,可以把集合想象成一个大筐子,你可以往这个筐子里装任何的东西,对于装进去的每一样东西我们都需要给它打一个标识,并把这个标识记录下来,便于之后的查找。当你想要在这筐子里找到某一件东西时,最好的方式就是先知道这个东西的标识,然后去看一下在记录中有没有这个标识,如果有的话那么这个东西就一定在筐子里,你也就一定能够通过标识找到它。


数据id就是标识,这个标识最好是唯一的,即通过一个标识只能找到唯一的一样东西(数据)。如果每一位玩家都有一个唯一的标识的话,我们就可以通过这个唯一的标识来添加或者查找这位玩家的数据了。


这个唯一的标识,微信已经为我们提供了,叫做OpenlD(用户唯一标识),对于微信小游戏来讲,每一位玩家都会有一个唯一的 OpenlD,只要我们获取到OpenlD,就可以通过它来记录或者查找玩家的数据了。

说一下具体的实现思路:首先我们在微信小游戏制作工具中使用微信登陆积木获取到登陆凭证,接着将登陆凭证传递给要调用的云函数,在云函数中对登陆凭证进行校验,获得唯一的标识 openid,最后再将openid回传到小游戏制作工具中。

image.png

接下来我们就实现一下这个完整的过程。


首先,在小游戏制作工具中布置一个测试场景,用于显示各种操作的返回结果。

image.png

接着在“获取唯一标识”的文本上增加如下的积木块

image.png

使用“微信登陆”积木块获得登陆凭证,然后将登陆凭证作为参数传递给云函数,如果云调用成功返回了,那么就将用户的唯一标识openid缓存在本地。这样只要本地有缓存的openid,就不需要每次都去调用云函数获取了。


接下来,我们看一下云函数的实现。新建一个云函数,命名为"login"

image.png

相关文章
|
2月前
|
存储 人工智能 Cloud Native
云栖重磅|从数据到智能:Data+AI驱动的云原生数据库
在9月20日2024云栖大会上,阿里云智能集团副总裁,数据库产品事业部负责人,ACM、CCF、IEEE会士(Fellow)李飞飞发表《从数据到智能:Data+AI驱动的云原生数据库》主题演讲。他表示,数据是生成式AI的核心资产,大模型时代的数据管理系统需具备多模处理和实时分析能力。阿里云瑶池将数据+AI全面融合,构建一站式多模数据管理平台,以数据驱动决策与创新,为用户提供像“搭积木”一样易用、好用、高可用的使用体验。
云栖重磅|从数据到智能:Data+AI驱动的云原生数据库
|
7天前
|
数据采集 数据库 Python
有哪些方法可以验证用户输入数据的格式是否符合数据库的要求?
有哪些方法可以验证用户输入数据的格式是否符合数据库的要求?
115 75
|
2月前
|
存储 监控 数据处理
flink 向doris 数据库写入数据时出现背压如何排查?
本文介绍了如何确定和解决Flink任务向Doris数据库写入数据时遇到的背压问题。首先通过Flink Web UI和性能指标监控识别背压,然后从Doris数据库性能、网络连接稳定性、Flink任务数据处理逻辑及资源配置等方面排查原因,并通过分析相关日志进一步定位问题。
224 61
|
24天前
|
SQL 程序员 Linux
推荐几个不错的数据库设计工具
推荐几个不错的数据库设计工具
123 11
|
20天前
|
SQL 存储 运维
从建模到运维:联犀如何完美融入时序数据库 TDengine 实现物联网数据流畅管理
本篇文章是“2024,我想和 TDengine 谈谈”征文活动的三等奖作品。文章从一个具体的业务场景出发,分析了企业在面对海量时序数据时的挑战,并提出了利用 TDengine 高效处理和存储数据的方法,帮助企业解决在数据采集、存储、分析等方面的痛点。通过这篇文章,作者不仅展示了自己对数据处理技术的理解,还进一步阐释了时序数据库在行业中的潜力与应用价值,为读者提供了很多实际的操作思路和技术选型的参考。
32 1
|
24天前
|
存储 Java easyexcel
招行面试:100万级别数据的Excel,如何秒级导入到数据库?
本文由40岁老架构师尼恩撰写,分享了应对招商银行Java后端面试绝命12题的经验。文章详细介绍了如何通过系统化准备,在面试中展示强大的技术实力。针对百万级数据的Excel导入难题,尼恩推荐使用阿里巴巴开源的EasyExcel框架,并结合高性能分片读取、Disruptor队列缓冲和高并发批量写入的架构方案,实现高效的数据处理。此外,文章还提供了完整的代码示例和配置说明,帮助读者快速掌握相关技能。建议读者参考《尼恩Java面试宝典PDF》进行系统化刷题,提升面试竞争力。关注公众号【技术自由圈】可获取更多技术资源和指导。
|
27天前
|
前端开发 JavaScript 数据库
获取数据库中字段的数据作为下拉框选项
获取数据库中字段的数据作为下拉框选项
54 5
|
2月前
|
SQL 关系型数据库 数据库
国产数据实战之docker部署MyWebSQL数据库管理工具
【10月更文挑战第23天】国产数据实战之docker部署MyWebSQL数据库管理工具
223 4
国产数据实战之docker部署MyWebSQL数据库管理工具
|
2月前
|
关系型数据库 MySQL 数据库
GBase 数据库如何像MYSQL一样存放多行数据
GBase 数据库如何像MYSQL一样存放多行数据
|
2月前
|
关系型数据库 分布式数据库 数据库
云栖大会|从数据到决策:AI时代数据库如何实现高效数据管理?
在2024云栖大会「海量数据的高效存储与管理」专场,阿里云瑶池讲师团携手AMD、FunPlus、太美医疗科技、中石化、平安科技以及小赢科技、迅雷集团的资深技术专家深入分享了阿里云在OLTP方向的最新技术进展和行业最佳实践。

热门文章

最新文章