Firebase - Unity

时间:2017-04-06 10:34:25

标签: firebase unity3d firebase-realtime-database offline

我最近开始使用Firebase开发游戏,并在一个地方考虑​​Firebase提供的功能。但是现在我面临的限制/实施问题很少,所以任何帮助都会受到赞赏。

我正在开发一款半在线游戏,只要没有可用的网络,用户就可以玩游戏,并在连接时立即与Firebase同步。对于第一次启动连接是强制性的,因为我从Firebase提取配置数据,以后用户可以使用离线已保存状态,这将在以后连接时推送。

如果我误解了任何实现,我对Firebase非常了不起,请原谅我。我查看了不同的答案,主要是针对本机Android / iOS,而不是针对Unity。所以要么我找不到答案,要么几年前才被问到但仍然没有回答。谢谢!

3 个答案:

答案 0 :(得分:2)

老问题但仍难以找到正确的答案。 Firebase文档明确含糊不清:在此页面上: center image next to two lines of text responsively 第一行: " Firebase实时数据库使用我们的NoSQL云数据库存储和同步数据。数据在所有客户端实时同步,并在您的应用离线时保持可用状态。"

Unity Firebase不支持真正的离线功能。 只有当你的游戏以网络开启时才会起作用,并且在玩游戏时,如果玩家有网络关闭,只要你在停止游戏之前打开网络,它就会正确所以它可以同步..否则所有的更改都会丢失!

这是来自firebase对这个问题的支持的答案:

  

目前,Unity不支持离线功能。对此抱歉。这确实是我们正在研究的问题,但是,我不能保证这很快就会出现。我们会继续考虑您的反馈意见。

     

该文档说明您的应用会在离线时继续保存您的数据。写入数据时,首先将其写入此本地版本,并在重新建立连接后将该数据同步到服务器。查看https://firebase.google.com/docs/database/unity/start了解更多详情。对于其他上下文,Firebase的网络弹性将适用于Unity。因此,只要应用保持有效状态,如果网络连接中断,Firebase将继续运行。在这种情况下,它提供来自其缓存的任何读取并保留挂起写入的队列。但目前不支持磁盘持久性,这将允许缓存和队列在应用程序重新启动期间存活。

答案 1 :(得分:0)

自从Firebase SDK for Unity 5.4.0版以来,

实时数据库的磁盘持久性现在可用。请参阅FirebaseDatabase. SetPersistenceEnabled()release notes for that version的文档。

答案 2 :(得分:0)

我激活了

FirebaseDatabase.DefaultInstance.SetPersistenceEnabled(true); 

在我的游戏初始化期间。 它在 iOS 中运行良好,但在 Android 中不起作用。