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