0
に基づいて、character
ごとにlevel
を取得する最も効率的な方法は次のとおりです。私はがの他のプロパティと一緒にlevel
ストアすることができますが、そうすることなくこれを行う方法があることを願っています。子データを正しく計算するにはどうすればよいですか?
{
"characters": {
"-k1239748": {
"name": "Ada",
"experience": 0
},
"-k827493": {
"name": "Beth",
"experience": 2331
},
"-k344432": {
"name": "Carol",
"experience": 4789
}
},
"levels": {
"-k123433": {
"level": 1
"minimumExperience": 0
},
"-k412312": {
"level": 2
"minimumExperience": 2000
},
"-k113433": {
"level": 3
"minimumExperience": 4000
}
}
}
の予想される出力は次のようになります。
内levels
のリストをつかん
characters
- :
ada.level = 1 beth.level = 2 carol.level = 3
私の仮定は、以下に簡単な方法はありませんということです
complete
ブロック - it各
character
を抹消し、と呼ばれるいくつかの機能から得たものにcharacter.level
プロパティを割り当てます。私は、これはなど私はちょうどJOIN
を行う、または必要な場合にのみ、関数から値をつかむことができC#
でいくつかの計算された性質を持っている可能性がSQLから来る場合は特に、一種の退屈、不必要なことを見つける
。
私は何を探していることは、次のようなことを行うための構文は次のとおりです。
this.af.database.list('/characters')
.map(characterResult => {
this.af.database.list('/levels').startAt(result.experience).first()
.subscribe(levelResult => {
result.level = levelResult;
});
return characterResult;
});
私がどこに収まるかわからないだから私は上記のブロックの途中でいくつかの擬似コードを使用しています、とにかく私はこれがpropeであることを知らない私のテーブルの冗長データをset
またはupdate
に複製することなく、このような値を効率的に取得する最良の方法について私の頭を覆すことはできません。
ありがとうございます!
例のように私はいくつかのデータを減らしましたが、レベルにはそれだけ多くのデータがありますので、配列を減らすことはできません。それにもかかわらず、私は特にAngularFire2やObservableパターン全体を使って、内部サブスクリプション/マップとそのすべてを使ってどのように見えるかを調べようとしています。スキーマ構造ではありません。私が子供のデータを持っていたのを想像してみると、私はすべての特定のユーザーを引っ張り、それをユーザーのリストの横に並べて表示する必要がありました。 – bdrelling