无法从Cloud Firestore将处于初始化状态的单个数据存档

时间:2018-07-11 08:22:11

标签: flutter google-cloud-firestore

我想在初始化状态下从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();
          }

    });



  }

1 个答案:

答案 0 :(得分:0)

您需要致电setState(...)进行重建。
如果执行异步代码,则在函数完成且build()已执行后,结果将不可用。

异步代码只会在稍后执行。

更改

 _prvScore = datasnapshot.data['total score'].toInt();

setState(() => _prvScore = datasnapshot.data['total score'].toInt());   

应该修复它。

您需要确保build()仍为_prvScorenull不会导致错误,因为还没有来自Firebase的数据。