flutter - 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,
),
解决方案
当您将函数的输出返回到State时,您需要通过调用setState函数来重建状态。
通过调用 setState,整个 StatefulWidget 知道某些内容已更新,并使用新数据重建状态。因此,在类中调用 Firestore 函数后插入 setState。它可以在函数内部或内部onTap: (){}
。
如果你在你的内部调用那个函数onTap: (){}
,不要忘记像这样添加 async:onTap: () async{}
和await
你返回的数据。
推荐阅读
- mysql - MySQL:如何选择表 A 上未出现在表 B 上的所有寄存器?
- java - 如何在 Spring Boot Crud Repository 中编写条件自定义查询
- bash - Bash:获取打印函数的状态
- javascript - How to display an array of pair arrays as key values pairs?
- deployment - 我如何知道谷歌云何时完成部署我的网站?
- robotframework - 如何在控制台错误时停止机器人框架套件的执行?
- android - android联系人中的is_primary标志何时设置为非零值?
- c# - 母版页不会在 Web 窗体上显示其内容
- vue.js - Vue.js 和 VueRouter 性能缓慢
- spring-boot - 如果@Scheduled 注解的方法在两台不同的机器上运行,它会被调用两次吗?