У меня угловое приложение с Firebase.Я хочу изменить значение элемента Firebase.Каждый раз, когда общий КМ изменяется, его необходимо установить на правильное значение.так что это мои услуги:
countKm(){
this.totalKmRef = this.db.list(this.uid + '/rides');
this.totalKm$ = this.totalKmRef.valueChanges();
this.totalKm$.subscribe(res=> this.getAllRides(res));
}
getAllRides(res){
this.rides = res;
this.rides.forEach(ride =>{
this.uniqueRides.push(ride.km);
})
this.totalKm = this.uniqueRides.reduce(this.sum);
localStorage.setItem("totalKm", this.totalKm);
}
sum(a, b){
return a += b;
}
Теперь по какой-то причине, когда я добавляю поездку, все в порядке, но во второй раз все идет не так.
например, в первый раз foreachработает, я получаю (после того, как у firebase уже есть 5 элементов):
0{
0: 5,
1: 5,
2: 5,
3: 5,
4: 5,
}
После того, как я запускаю foreach 1 раз, мой список объектов выглядит следующим образом: 0 {0: 5, 1: 5, 2: 5, 3: 5, 4: 5, 5: 5,}
После добавления нового значения во второй раз и далее foreach делает это:
0{
0: 5,
1: 5,
2: 5,
3: 5,
4: 5,
5: 5,
6: 5,
7: 5,
8: 5,
9: 5,
10: 5,
11: 5,
12: 5,
}
Есть ли кто-нибудь, кто может мне помочь?Я думаю, что это неправильная конфигурация в foreach, но не могу узнать где.
Спасибо за вашу помощь!