我想在in it状态下从cloud firestore存档一个数字..下面是我的代码如何尝试存档,但它不起作用..有人能告诉我怎么做吗..
int _prvScore ;
// @protected
// @mustCallSuper
// void initState() {
// _prvScore = 23.toInt();
// }
@override
void initState() {
var month = new DateTime.now().month;
final DocumentReference documentReference =
Firestore.instance.collection('quiz').document('$month')
.collection('1')
.document(username);
subscription =
documentReference.snapshots().listen((datasnapshot) {
if (datasnapshot.data.containsKey("total score")) {
_prvScore = datasnapshot.data['total score'].toInt();
}
});
}
最佳答案
您需要调用setState(...)
以进行重建。
如果您执行异步代码,那么当函数完成并且build()
已经执行时,结果将不可用。
异步代码只能在稍后执行。
改变
_prvScore = datasnapshot.data['total score'].toInt();
到
setState(() => _prvScore = datasnapshot.data['total score'].toInt());
应该修复它。
您需要确保
build()
在_prvScore
仍然null
时不会导致错误,因为还没有从FireBase收到数据。关于flutter - 无法从云存储中归档init状态的单个数据,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51280575/