我試圖讓我的身邊和我團結2D遊戲的問題,頭在那裏我用火力地堡實時數據庫來存儲像規範的數據,命中,命中,發展水平等團結火力地堡SDK SetRawJsonValue性能
目前,我正在開發用戶可以創建新配置文件/新角色的場景。我有下面的代碼工作:
var db = FirebaseDatabase.DefaultInstance.RootReference;
Profile profile = new Profile {
userId = GameManager.Instance.User.UserId,
name = "Bo Mortensen",
age = 34,
gender = "M"
};
string json = JsonUtility.ToJson (profile);
// The Push() is almost instant
var profileKey = db.Child ("profiles").Push().Key;
// However, this takes around 3 seconds to return, even when specifying 1 as it's priority..
db.Child("profiles").Child(profileKey).SetRawJsonValueAsync (json, 1).ContinueWith (t => {
if(t.IsFaulted) {
Debug.Log("Faulted..");
}
if(t.IsCanceled) {
Debug.Log("Cancelled..");
}
if(t.IsCompleted) {
SceneManager.LoadScene ("Main game scene");
}
});
因此,創建密鑰的實際輪廓參考幾乎是瞬間,其中SetRawJsonValueAsync
實在是太慢了。進行了一次測試,在加載下一個場景之前需要大約5秒。
Firebase是否正常?我有一種感覺,我不應該等待任務返回任何東西,而只是讓它在後臺工作,而我加載下一個場景。這將會非常快,但如果它被取消或故障怎麼辦?我無法控制。
應該說我在調試模式下運行我的Unity遊戲,並且Firebase目前是用於開發的免費層。不確定性能是否會隨着付費級別的Firebase的增加而增加。
任何幫助/提示是非常感謝!
在此先感謝。
非常感謝你弗蘭克!非常非常有價值的信息。我試圖創建一個獨立的方法來創建數據庫中的虛擬數據,第一個方法很慢,正如您所提到的,但之後,數據立即被存儲! 有一點可以想到:這應該*真正*包含在SDK指南中:-)老實說,我很接近尋找Firebase的替代品,只是因爲這個簡單的誤解。 無論如何:再次感謝你。剛剛救了我一天:-) –
很高興聽到這是最初的連接。大多數使用Firebase的應用程序類型,從開始的那一刻開始使用它。因此創建連接的成本既隱藏在一般啓動成本中,也不能在這種情況下進一步隱藏。在你的系統中,似乎你稍後才使用數據庫,在這種情況下,有辦法隱藏成本。但這確實是我們通用的文檔方法可能沒有幫助的情況之一。 –