跳转到内容

云端存储(Cocos)

云端存储以玩家的 FRVR 鉴权会话为 key —— 跟随玩家跨设备、跨浏览器、跨渠道。

API 形态与 本地存储 一致,只是持久化层不同。

await FRVRSDK.instance.cloudStorageSetItem('save', gameState);

const save = await FRVRSDK.instance.cloudStorageGetItem('save');
if (save) restoreGame(save);

await FRVRSDK.instance.cloudStorageRemoveItem('save');

值需要可 JSON 序列化 —— 序列化由封装层处理。

await FRVRSDK.instance.cloudStorageSetItems([
  { key: 'save',     value: gameState },
  { key: 'unlocked', value: unlockedSet },
]);

const items = await FRVRSDK.instance.cloudStorageGetItems(['save', 'unlocked']);

await FRVRSDK.instance.cloudStorageRemoveItems(['legacy_save_v1']);

云端值缺失可能意味着:

  • 真的是个新玩家
  • 本次会话鉴权还没完成
  • 网络一时抖动

如果你打算 因为 读不到东西就直接写一份新存档,先做去抖 —— 短延迟后再读一次,或等鉴权完成,只有在确认鉴权就绪后,才把”空”当作”新玩家”。

const save = await FRVRSDK.instance.cloudStorageGetItem('save');
if (!save) {
  // TODO:在把这视作新账号之前,先确认玩家已通过鉴权
}

参见 本地存储 § 何时用本地、何时用云端