# 关系链数据

# qq.setUserCloudStorage

# qq.setUserCloudStorage(Object object)

对用户托管数据进行写数据操作。允许同时写多组 KV 数据。

QQ mac版本:支持

QQ windows版本:支持

# 参数

# Object object
属性 类型 默认值 必填 说明
KVDataList Array.<KVData> 要修改的 KV 数据列表
success function 接口调用成功的回调函数
fail function 接口调用失败的回调函数
complete function 接口调用结束的回调函数(调用成功、失败都会执行)

# 托管数据的限制

  1. 每个openid所标识的QQ用户在每个游戏上托管的数据不能超过128个key-value对。
  2. 上报的key-value列表当中每一项的key+value长度都不能超过1K(1024)字节。
  3. 上报的key-value列表当中每一个key长度都不能超过128字节。

# qq.removeUserCloudStorage

# qq.removeUserCloudStorage(Object object)

删除用户托管数据当中对应 key 的数据。

QQ mac版本:支持

QQ windows版本:支持

# 参数

# Object object
属性 类型 默认值 必填 说明
keyList Array.<string> 要删除掉 key 列表
success function 接口调用成功的回调函数
fail function 接口调用失败的回调函数
complete function 接口调用结束的回调函数(调用成功、失败都会执行)

# KVData

托管的 KV 数据

QQ mac版本:支持

QQ windows版本:支持

# 属性

# string key

数据的 key

# string value

数据的 value

# 举例1

比如某小程序有一个分数排行榜,分数排行榜需要记录分数以及获得分数的耗时(小程序内的排行榜需要展示耗时),可以在qqgame同级别定义一个cost_ms字段,存储耗时的毫秒数。 分配一个不和已定义的托管数据的key相冲突的key作为分数排行榜的key,如 "score"。

在玩家耗时36500ms后,获得本周最高分16分,则需要更新分数,假设当前时间戳为1513080573, 则完整 value在序列化之前的内容如下:

{
  "qqgame": {
    "score": 16,
    "update_time": 1513080573
  },
  "cost_ms": 36500
}
1
2
3
4
5
6
7

# 举例 2

比如要在手 Q 下拉或游戏中心的好友 PK 王等处展示排行榜(与举例 1 中小程序内的排行榜不同),value 值直接传string类型的分数,战力或关卡等数字即可。