2016-12-07 10 views
0

私はあなたを助けてくれることを願っています。 現在iOSとAndroid用のモバイルゲームをUnityで作成しています.Firebase Realtime Databaseを使用してグローバルリーダーボードを作成しています。 私は以下の問題があります。すべてのユーザーからのクエリを作成したい場合は、MaxLevelがレベル90以上に達したユーザーに限定してアクセスし、私のアプリの生涯で初めて結果を得ます。最初のクエリの後、私は2番目のクエリを作成することはできません。ゲームを終了して再起動すると、もう一度動作してから再び停止します。 私は何の制限もなく尋ねれば、それは常に働いています。 Googleのこの問題については何も見つかりませんでしたが、Firebase for Unityはまだベータ段階にあるので、私はこの問題の最初の方であるかどうかわかりません。 これは私がstartat()を使用したUnity/Firebaseクエリは、一生で一度しか動作しません。

//のiniti(一度だけ、他のスクリプトで呼ばれる)

FirebaseApp.DefaultInstance.SetEditorDatabaseUrl ("https://game-tow.firebaseio.com/"); 
FirebaseReference = FirebaseDatabase.DefaultInstance.RootReference; 

//クエリ

leaderbaordRef = FirebaseRefrence; 

public void Query(int level, DatabaseReference leaderboardRef){ 
    GoldUserList = new List<UserDetails>(); 

    leaderboardRef.Child ("Users").OrderByChild("LevelMax").StartAt(90).GetValueAsync().ContinueWith (taskGold => { 

     if (taskGold.IsFaulted) { 
      Debug.LogError (taskGold.Exception); 
      return; 
     } 

     foreach (DataSnapshot GoldUser in taskGold.Result.Children) { 
      UserDetails ListUser = new UserDetails (GoldUser.Key); 
      GoldUserList.Add (ListUser); 
      print ("GoldUser" + ListUser.username); 
     } 

    }); 
} 

誰かが

私を助けることを願って、クエリに使用するコードです

答えて

0

GetValueAsync()と呼んでいるので、値は実際には1回だけ得られます。 documentationが言うように:

あなたは一度指定されたパスに内容の静的なスナップショットを読み取るためにGetValueAsyncメソッドを使用することができます。

hereを文書としてあなたは、更新のために聞くValueChangedイベントのリスナーを登録したい場合:

あなたは指定されたパスに内容の変更にサブスクライブするValueChangedイベントを使用することができます。このイベントは、リスナーが接続されたときに1回トリガーされ、子を含むデータが変更されるたびにトリガーされます。

FirebaseDatabase.DefaultInstance 
    .GetReference("Leaders") 
    .ValueChanged += (object sender, ValueChangedEventArgs args) => { 
    if (args.DatabaseError != null) { 
     Debug.LogError(args.DatabaseError.Message); 
     return; 
    } 
    // Do something with the data in args.Snapshot 
    }; 
0

私はプラグイン(1.0.1)の最新バージョンでのvalueChangedリスナーで問題を抱えてきた。それが装着されたときにイベントリスナーはなく、任意の後続の変更に、一度呼び出されます。データはデータベースで確実に変化しているので、これは新しいリリースのバグだと思っています(リスナーはバージョン1.0.0で期待通りに呼び出されていました)。

関連する問題