【问题标题】:Firebase Update query runs infinitely when I use variable当我使用变量时,Firebase 更新查询无限运行
【发布时间】:2019-09-02 12:47:13
【问题描述】:

我正在使用 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
    });
  }
});

 }

【问题讨论】:

    标签: firebase firebase-realtime-database flutter


    【解决方案1】:

    我正在使用 onvalue 方法,因为每当值更改时,它就会一次又一次地调用。我把它改成 once 就可以了。

    如果有人遇到同样的问题,我会保留这个问题。

    【讨论】:

      猜你喜欢
      • 2013-04-08
      • 2016-09-10
      • 1970-01-01
      • 2017-10-17
      • 2018-12-25
      • 2022-07-27
      • 1970-01-01
      • 2013-01-10
      • 1970-01-01
      相关资源
      最近更新 更多