如何在Flutter中使用FutureBuilder小部件更新数据?

时间:2020-07-04 18:53:02

标签: firebase flutter google-cloud-firestore cross-platform

我只是在处理Flutter中的FutureBuilder小部件,然后从Firebase中获取一个数字数据,然后在Button文本中显示该数据。在显示之前,我正在屏幕上加载数据,并且当数据上传时,它正在显示带有禁用按钮的文本加载。

我要上传数据,然后按一下该启用按钮,它应该在按钮中显示保存文本,然后再次加载文本。最后,它应该更新编号。我该如何解决这个问题?

我将其放在这里:


Future getData() async {
  var fb = Firestore.instance;

  DocumentSnapshot dr =  (await fb.collection("records").document("the record").get());

  return dr.data.toString();
}

这是我的FutureBuilder小部件:

 child: FutureBuilder(
              future: getData(),
              builder: (_ ,snapshot){

                if(snapshot.connectionState==ConnectionState.waiting) {
                  return RaisedButton(
                    child: Text("loading" ),
                    onPressed: null,
                  );
                }


                if(snapshot.connectionState==ConnectionState.done) {
                  return RaisedButton(
                    child: Text(snapshot.data),
                    onPressed: updateData,
                  );
                }

我只是尝试实现updateData函数来更新Firebase中的数据,但是还应该包括在FutureBuilder中保存状态。


void updateData() async {

  int value=0;

  var fb = Firestore.instance;

  await fb.collection("records").document("the record").updateData(
      {
        "value" : value+1,
      }
  );

}

当我按下按钮时如何更新该daha,如何将状态设置为FutureBuilder内部的保存和加载状态?

0 个答案:

没有答案