2017-05-30 9 views
0

私は現在、ウェブからのデータを解析するfirebaseプロジェクトを持っています。c#とunity3dで注文された辞書FIREBASE

すべてのデータがダウンしていますが、結果の順序を逆にしたいと考えています。

私はその後、私のデータ方式フェッチに次のコード

public class ExampleItemModel{ 

    public string name; 
    public string score; 
    public string level; 
    public int iconIdx1, iconIdx2, iconIdx3; 
} 

を行うことでこれを実現: - :私はしましたfirebaseルールで

-

public void GetDataFromFireBase(string reference, Action<ExampleItemModel[]> onDone){ 


     FirebaseDatabase.DefaultInstance 
      .GetReference(reference).OrderByChild("score") 
      .GetValueAsync().ContinueWith(task => { 
      if (task.IsFaulted) { 
       // Handle the error... 
       print("Error: " + task.Exception); 
      } 
      else if (task.IsCompleted) { 
       DataSnapshot snapshot = task.Result; 
       // Do something with snapshot... 

       var items = snapshot.Value as Dictionary<string, object>; 
       int count = items.Count; 
       var results = new ExampleItemModel[count]; 
       int i = 0; 
       foreach(var item in items){ 
        results[i] = new ExampleItemModel(); 

        //print("items = " + item); 
         var values = item.Value as Dictionary<string, object>; 

          if (reference == "scores"){ 
          print("values count =" + values.Count); 

           foreach(var value in values){ 

            if(value.Key == "name"){ results[i].name = "" + value.Value;} 
            if(value.Key == "score"){ print("Score = " + value.Value); results[i].score = "" + value.Value;} 
            if(value.Key == "level"){ results[i].level = "" + value.Value;} 

           } 
          i++; 
          } 
      onDone(results); 

} 

      }); 

} 

をアイブ氏は、次のことを試してみましたセット

".indexOn":"score", 
"score": { 
    ".indexOn": ".value" 
} 
『「暗黙的にタイプを変換できません』 System.Linq.IOrderedEnumerable:は、私はまた、コード

  results = results.OrderByDescending(x => x.score); 
      onDone(results); 

の次の行を追加しようとしましたが、私は

重症度以下のエラーを取得:「エラー」 メッセージ「 時: ' 'ExampleItemModel []'[アセンブリ-CSHARP]に137,14' ソース: ''

は、誰もが

感謝を助けることができるだろうしてください210の

+0

でこの問題を他の誰かを助ける

List <ExampleItemModel> orderedArray = results.OrderByDescending(x => x.score).ToList(); 

希望次の手順を実行して、結果を注文するために管理しましたこれは通常、反転された値を持つ新しいフィールドをインデックスすることによって行われます。この回答を見る:https://stackoverflow.com/a/34158197/4816918 – Jeff

答えて

0

おかげでジェフは、この背面のご回答

のために私は、これは将来の

関連する問題