我想在初始化状态下从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();
}
});
}
答案 0 :(得分:0)
您需要致电setState(...)
进行重建。
如果执行异步代码,则在函数完成且build()
已执行后,结果将不可用。
异步代码只会在稍后执行。
更改
_prvScore = datasnapshot.data['total score'].toInt();
到
setState(() => _prvScore = datasnapshot.data['total score'].toInt());
应该修复它。
您需要确保build()
仍为_prvScore
时null
不会导致错误,因为还没有来自Firebase的数据。