Firestore提取永远不会在Flutter代码中执行

时间:2018-07-07 09:32:59

标签: firebase google-cloud-firestore flutter

我的代码中有一个名为“ length”的整数,我正在尝试从Cloud Firestore中的一个字段更改其值:

 int length;
_handlePressed(context) {
    DocumentReference postReference =  Firestore.instance.collection(ISBN).document(post);

    postReference.get().then((datasnapshot){
      if(datasnapshot.exists) {
        length = datasnapshot.data["length"];
        print(length.toString());
      }
    });
}

“长度”字段以数字类型存储在我的Firestore中。

问题是无法执行print操作,并且在控制台中打印length到其他地方显示null。我想念什么?

1 个答案:

答案 0 :(得分:1)

首先,请确保确实调用了_handlePressed,然后在使用StatefulWidget时使用setState更新状态:

int length; 
_handlePressed(context) { 
    DocumentReference postReference = Firestore.instance.collection(ISBN).document(post); 
    postReference.get().then((datasnapshot){ 
    if(datasnapshot.exists) { 
        setState(()
            length = datasnapshot.data["length"];
        );
    print(length.toString()); 
} }); }