首页 > 解决方案 > 1 QuerySnapshot 在 Flutter Web 应用程序中返回 null 但在 Android 控制台中给出结果

问题描述

我遇到一个问题,即来自 firestore 的 QuerySnashot 在 android 控制台中打印时给出正确的值,但在颤振 Web 应用程序上构建它时返回 null。有人可以帮助我做错什么吗?这是给我正确打印的功能:

countpassengers() async {
    String collection = "users";
    QuerySnapshot _myDoc = await firebaseFiretore.collection(collection).get();
    List<DocumentSnapshot> _myDocCount = _myDoc.docs;
    print("Number of Users: :::::::::::::");
    print(_myDocCount.length);  // Count of Documen
    totalusers = _myDocCount.length.toString() ;//ts in Collection
    print (totalusers.toString());
    return totalusers ;
}

这就是我如何称呼它(返回null)

InfoCard(
         title: "Number of Passengers",
         value: totalusers.toString(),//"3",
         onTap: () {},
         topColor: Colors.orange,
),

标签: fluttergoogle-cloud-firestoreflutter-web

解决方案


当您将函数的输出返回到State时,您需要通过调用setState函数来重建状态。

通过调用 setState,整个 StatefulWidget 知道某些内容已更新,并使用新数据重建状态。因此,在类中调用 Firestore 函数后插入 setState。它可以在函数内部或内部onTap: (){}

如果你在你的内部调用那个函数onTap: (){},不要忘记像这样添加 async:onTap: () async{}await你返回的数据。


推荐阅读