Я использую Firebase, и когда я пытаюсь обновить значения с помощью некоторой переменной, она работает бесконечно, и если я использовал один и тот же код со статическим значением, то он работает нормально.
Это функция, которую я использую правильносейчас.
updatetotal(String value, String type, int update) async{
FirebaseUser user = await FirebaseAuth.instance.currentUser();
int total, income, expense;
final ref = FirebaseDatabase.instance.reference().child('users');
ref.orderByChild('username').equalTo(user.email).onValue.listen((event){
DataSnapshot data = event.snapshot;
var keys = data.value.keys;
var todo = data.value;
print(keys);
print(value);
print(type);
for (var key in keys) {
total = todo[key]['total'];
income = todo[key]['income'];
expense = todo[key]['expense'];
if(type == 'Income'){
total = total + int.parse(value);
income = income + int.parse(value);
}else{
total = total - int.parse(value);
expense = expense + int.parse(value);
}
ref.child(key).update({
'total': total,//here if i user static value then it runs as expected
'income': 60,
'expense': 0
});
}
});
}