私は、AngularFire2を持つFirebase-Databaseからいくつかの値を集計しようとしており、それらをコンポーネントロジックでさらに処理するために使用しています。 いくつかのアドバイスを参考にして、希望する値(How to map and reduce child values from FirebaseListObservable)をクエリして減らすことができましたが、後で処理するためにそれらをローカル変数に入れようとすると、その値は常に未定義です。Firebaseを一度問い合わせてその戻り値をローカルパラメータに格納する方法は?
私はfirst()
を使用して、観測可能性が1回だけ実行され、結果がなくなることを保証しようとしました。
を一度だけ取得するにはボタンをクリックしたときの意味は?このブロックが初めて呼び出されたとき、その結果は常に「undefinied」は
//sum up scores for questions belonging to category 'id'
...
let scoresObservable = this.dbRef.database.list(`/question-answers/${id}`)
.first()
.map((array) => array.reduce((acc, element) =>
acc + element.$value, 0));
let result;
let total = scoresObservable.subscribe(sum => {
result = sum;
console.log(`total for ${id}: ` + sum)
});
return result;
:
は、これは私のコードです。あなたはscoresObservable.subscribe
に合格