Unity中的Firebase - 禁用持久性

时间:2017-08-20 13:20:48

标签: c# firebase unity3d

我正在使用Firebase为Android制作手机游戏。这个游戏有一个系统,允许玩家离线播放,并根据保存的日期时间更新/检索数据库中的数据。

这个日期时间(写在本地文件中)应该与数据库中保存的相同,为此我写了这个:

reference.Child("users/"+this.id+"/updateDate").SetValueAsync(updateDate).ContinueWith(task =>
{
    if (task.IsCompleted) {
        Debug.Log("Setting new update date into file: "+updateDate);
        this.lastUpdateDate = updateDate;
        WriteFile();
    }
});

问题在于,即使没有互联网连接,价值也会被修改,但下面的条件永远不会得到满足,所以会发生以下情况: 如果您读取该值,即使没有互联网连接,您也会读取“新”日期时间,而该文件仍然包含“旧”日期(实际存在于数据库中)。

我知道最好的解决方案是删除所有内容并让离线持久性完成其工作,但我做了几个测试,它甚至不能用于Android的构建。所以我的问题如下:

有没有办法在Unity中禁用离线持久性?

因为我已经尝试了“FirebaseDatabase.DefaultInstance.setPersistenceEnabled(false)”,但似乎Unity的API中不存在该函数(它给我编译错误)。

感谢您的协助!

1 个答案:

答案 0 :(得分:0)

要禁用持久性,请执行以下操作:

Firebase.FirebaseDatabase.DefaultInstance.SetPersistenceEnabled(false);

如果您来自 Google,在使用 2 个编辑器测试 Unity 时出现“无法初始化持久性存储”崩溃,请执行

#if UNITY_EDITOR
  Firebase.FirebaseDatabase.DefaultInstance.SetPersistenceEnabled(false);
#endif