我只是在处理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内部的保存和加载状态?