、ヒット、ミス、レベルの進行などユニティFirebase SDK SetRawJsonValueパフォーマンス
今のところ、ユーザーが新しいプロフィール/新しいキャラクターを作成できるシーンに取り組んでいます。 SetRawJsonValueAsync
は本当に遅いですキーの実際のプロファイルの参照を作成することは、ほとんど瞬時である、だから、
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");
}
});
:私は、次のコードの作業を持っています。次のシーンをロードする前に約5秒かかっていたテストを受けました。
Firebaseではこれは正常ですか?私は何かを返すための仕事を待つべきではなく、次のシーンをロードしている間にそれがバックグラウンドで働くようにする気持ちがあります。これは本当に速いでしょうが、もしそれがキャンセルされたり、フォールトされたらどうなりますか?私はそれを支配しないだろう。
Unityゲームをデバッグモードで実行し、Firebaseが現在開発中のフリー層であるとします。 Firebaseの有料層でパフォーマンスが向上するかどうかは不明です。
ヘルプ/ヒントは大変ありがとうございます。
ありがとうございます。
ありがとう、フランク!非常に貴重な情報があります。私はデータベースにダミーデータを作成するための別のメソッドを作成しようとしましたが、最初に述べたように遅くなりましたが、その後、データは即座に保存されました! これは、SDKガイドに*本当に*含まれていなければなりません:-)正直なところ、私はFirebaseの代わりに単純な誤解のために近くに探していました。 とにかくもう一度ありがとうございます。ちょうど私の一日を救った:-) –
それは最初の接続だったと聞いてよかった。 Firebaseを使用するほとんどのアプリケーションタイプは、起動時から使用します。したがって、接続を作成するためのコストは一般的な起動コストに隠されており、その場合はさらに隠すことはできません。あなたのシステムでは、データベースを後で使用するのではなく、コストを隠す方法があるようです。しかし、これは確かにドキュメントに対する一般的なアプローチが役に立たなかったケースの1つです。 –