寻找一种有效的方式来更新数据

时间:2019-09-06 04:47:06

标签: firebase unity3d

我正在Unity中为Android编写一个小游戏。基本上,这个人必须猜测照片上的内容。现在我的老板希望我添加一个附加功能->在成功/失败的猜测之后,玩家将让面板对照片进行评分(基本上是喜欢还是不喜欢),因为我们要跟踪哪些照片不好/将照片移除后几个成功的猜测。 我的理解是,如果我们想先在Firebase中将+1添加到变量中,则必须进行调用并得到它,然后我们必须进行单独的调用,将获得的值加1。我在徘徊是否有更有效的方法? 感谢您的任何建议!

3 个答案:

答案 0 :(得分:0)

您可以在开始时请求Firebase(onCreate like方法)并保存对象,然后保存它,然后在要更新时使用它,而不是在添加时请求Firebase。 谢谢

答案 1 :(得分:0)

好吧,您可以做的一件事是将数据临时存储在某个对象中,但不要立即将其发送到Firebase。相反,您可以在应用/游戏即将暂停/最小化时将数据发送到Firebase。因此,减少了潜在的滞后并提高了球员的满意度。 OnApplicationPause(bool)是在游戏最小化时调用的此类功能之一。

答案 2 :(得分:0)

要做您想做的事,我建议您使用Transaction而不是仅仅做SetValueAsync。这样,您可以通过首先针对本地缓存运行事务,然后针对不同的服务器数据运行事务,从而自动更改大型共享数据库中的值(请参见this question/answer)。

这涉及到Firebase Unity插件的一些较大的有趣部分。读/写将针对您的本地缓存运行,因此您可以对图片的“喜欢”节点执行类似attach a listener的操作。随着缓存在线同步和事务运行,此回调将异步触发,使您可以保持最新状态,而不必担心在应用启动/关闭/执行自己的缓存逻辑期间进行同步。这也意味着,通常来说,您不必在整个游戏中都担心在线/离线状态。