没有实时加载值

Not Loading the value in Real Time

我使用下面的代码从 firestore 集合中获取文档总数,然后将其存储到 int countDocument,它确实准确地获取了值,但是当我以前在嵌套在 Scaffold 中的 Flutter widget Text Widget,在加载屏幕时不显示值,仅显示 null,仅在热重载时才在屏幕上显示值。

为了在 Text Widget 中表示 countDocument 的值,我做了 countDocument.toString()' 但在初始加载屏幕时它仍然没有显示该值

我该如何解决?

void countDocuments() async {
    StreamSubscription<QuerySnapshot> _myDoc = await Firestore.instance.collection('users').snapshots().listen((result) {

         countDocument = result.documents.length;
         print(countDocument);


    });

你需要使用一个StatefulWidget,然后使用setState,你可以改变Text的数据:

  void countDocuments() async {
    StreamSubscription<QuerySnapshot> _myDoc = await Firestore.instance
        .collection('users')
        .snapshots()
        .listen((result) {
      setState(() {
        countDocument = result.documents.length;
      });
      print(countDocument);
    });
  }

setState 将使用新数据再次调用 build 方法。在 build 方法中,您可以执行以下操作:

Text(countDocument ?? "loading")