You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Unity Firebase Database读取值无法通过PlayerPrefs保存float值问题

Firebase读取金币数值后PlayerPrefs存储失效问题

问题表现

  • 实现目标:从Firebase Database读取coins(金币)数值,通过PlayerPrefs完成本地存储
  • 故障情况:数据库读取逻辑运行正常,第一个print()可正确打印从数据库读取到的目标数值,但该数值无法通过PlayerPrefs成功保存,控制台无任何报错信息
  • 排查记录:尝试了多种与贴出代码逻辑等价的实现方案,均未生效,所有方案都卡在PlayerPrefs保存环节
  • 补充测试结果:除int、float类型外,其余类型变量均可正常读取存储,string类型读写无任何问题,现象反常

原有实现代码:

await databaseReference.Child(FirebaseAuth.DefaultInstance.CurrentUser.UserId.ToString()).Child("rockets").GetValueAsync().ContinueWith((load =>
{
    if (load.IsCanceled)
    {
        return;
    }
    else if (load.IsFaulted)
    {
        return;
    }
    else
    {
        DataSnapshot coins = load.Result;
        print(coins.Value);
        PlayerPrefs.SetFloat("coins", (int)coins.Value);
        PlayerPrefs.Save();
        print("COINS SET: " + coins.Value);
    }
}));

解决方案

调整数据库存储格式绕开类型兼容问题:不在数据库中以int类型存储数值,而是将数值以string类型存储,读取到字符串后将其解析为对应数值类型,再传入PlayerPrefs保存,该方案可正常生效。


内容的提问来源于stack exchange,提问作者Dindi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.28 10:09:17