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に複製することなく、このような値を効率的に取得する最良の方法について私の頭を覆すことはできません。

    ありがとうございます!

  • 答えて

    0

    私はちょうどすべてのレベルをロードして、正しいクライアント側を選択します。

    IDは、彼らは単に時間をかけて邪魔になるだろうように見えるので、私はまた、若干異なるレベルを格納検討したい

    "levels": { 
        "exp0": 1 
        "exp2000": 2 
        "exp4000": 3 
    } 
    

    あなたがここでもアレイを使用して検討することもでき:

    "levels": [0, 2000, 4000] 
    

    あなたがそこに余分なヌルで1、またはパッドによりレベルを相殺する必要があると思いますが:

    "levels": [null, 0, 2000, 4000] 
    
    +0

    例のように私はいくつかのデータを減らしましたが、レベルにはそれだけ多くのデータがありますので、配列を減らすことはできません。それにもかかわらず、私は特にAngularFire2やObservableパターン全体を使って、内部サブスクリプション/マップとそのすべてを使ってどのように見えるかを調べようとしています。スキーマ構造ではありません。私が子供のデータを持っていたのを想像してみると、私はすべての特定のユーザーを引っ張り、それをユーザーのリストの横に並べて表示する必要がありました。 – bdrelling

    関連する問題