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

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

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


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


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


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


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


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

image.png

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


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


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

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

image.png

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


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

image.png

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

image.png

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


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

image.png

相关文章
|
5天前
|
关系型数据库 MySQL 数据库
ORM对mysql数据库中数据进行操作报错解决
ORM对mysql数据库中数据进行操作报错解决
28 2
|
4天前
|
JavaScript Java 关系型数据库
毕设项目&课程设计&毕设项目:基于springboot+vue实现的在线考试系统(含教程&源码&数据库数据)
本文介绍了一个基于Spring Boot和Vue.js实现的在线考试系统。随着在线教育的发展,在线考试系统的重要性日益凸显。该系统不仅能提高教学效率,减轻教师负担,还为学生提供了灵活便捷的考试方式。技术栈包括Spring Boot、Vue.js、Element-UI等,支持多种角色登录,具备考试管理、题库管理、成绩查询等功能。系统采用前后端分离架构,具备高性能和扩展性,未来可进一步优化并引入AI技术提升智能化水平。
毕设项目&课程设计&毕设项目:基于springboot+vue实现的在线考试系统(含教程&源码&数据库数据)
|
6天前
|
Java 关系型数据库 MySQL
毕设项目&课程设计&毕设项目:springboot+jsp实现的房屋租租赁系统(含教程&源码&数据库数据)
本文介绍了一款基于Spring Boot和JSP技术的房屋租赁系统,旨在通过自动化和信息化手段提升房屋管理效率,优化租户体验。系统采用JDK 1.8、Maven 3.6、MySQL 8.0、JSP、Layui和Spring Boot 2.0等技术栈,实现了高效的房源管理和便捷的租户服务。通过该系统,房东可以轻松管理房源,租户可以快速找到合适的住所,双方都能享受数字化带来的便利。未来,系统将持续优化升级,提供更多完善的服务。
毕设项目&课程设计&毕设项目:springboot+jsp实现的房屋租租赁系统(含教程&源码&数据库数据)
|
1天前
|
存储 API 数据库
QML使用Sqlite数据库存储ListModel数据
本文介绍了在QML中使用Sqlite数据库存储ListModel数据的方法,包括如何创建数据库、读取数据、动态添加和删除数据,以及如何在程序启动和退出时与数据库同步数据。
|
10天前
|
存储 人工智能 Cloud Native
云栖重磅|从数据到智能:Data+AI驱动的云原生数据库
阿里云数据库重磅升级!元数据服务OneMeta + OneOps统一管理多模态数据
|
20天前
|
SQL NoSQL Java
彻底革新你的数据库操作体验!Micronaut数据访问技巧让你瞬间爱上代码编写!
【9月更文挑战第10天】Java开发者们一直在寻找简化应用程序与数据库交互的方法。Micronaut作为一个现代框架,提供了多种工具和特性来提升数据访问效率。本文介绍如何使用Micronaut简化数据库操作,并提供具体示例代码。Micronaut支持JPA/Hibernate、SQL及NoSQL(如MongoDB),简化配置并无缝集成。通过定义带有`@Repository`注解的接口,可以实现Spring Data风格的命名查询。
42 6
|
16天前
|
SQL 存储 数据库
MSSQL遍历数据库根据列值查询数据
【9月更文挑战第12天】在 SQL Server 中,可以通过游标或临时表遍历数据库并根据列值查询数据。示例展示了如何创建临时表存储数据库名,并通过循环遍历这些名称来执行特定查询。需替换 `YourTableName`、`YourColumnName` 和 `YourValue` 为实际值。此方法要求有足够权限访问各数据库。若无跨库权限,需分别执行查询。
|
22天前
|
前端开发 数据库 开发者
数据模型(数据库表设计)生成代码
BizWorks ToolKit 插件集成 Mybatis-Plus 代码生成工具,支持从数据库表批量生成代码,简化开发流程。本文详细介绍配置方法及项目示例,包括配置文件格式、生成选项及具体操作步骤,帮助开发者快速实现代码同步更新。配置文件 `.mp.yaml` 支持自定义输出目录、生成组件等,适用于多种项目结构。
30 0
|
2月前
|
测试技术 Java
全面保障Struts 2应用质量:掌握单元测试与集成测试的关键策略
【8月更文挑战第31天】Struts 2 的测试策略结合了单元测试与集成测试。单元测试聚焦于单个组件(如 Action 类)的功能验证,常用 Mockito 模拟依赖项;集成测试则关注组件间的交互,利用 Cactus 等框架确保框架拦截器和 Action 映射等按预期工作。通过确保高测试覆盖率并定期更新测试用例,可以提升应用的整体稳定性和质量。
59 0
下一篇
无影云桌面