我想输出与特定查询匹配的文档数量,该查询是一个布尔值,因此显示值为“true”的文档数量。我在 Stack Overflow 上找到了几个与此相关的问题,但只有下面的代码接近我的需求。
以下代码在控制台中打印出正确的数字,但我需要帮助将其输出到屏幕上。
final Future<void> activityDone = FirebaseFirestore
.instance
.collection('user')
.doc(FirebaseAuth.instance.currentUser!.uid)
.collection('list')
.doc(widget.docId).collection('activity').where("status", isEqualTo: true)
.count().get().then(
(res) => print(res.count),
onError: (e) => print("Error completing: $e"),
);
我无法让这个计数代码起作用。
String count = activityDone.toString();
我想在这样的文本中使用计数代码
Text("Activities done = $count"),
完整代码
child: StreamBuilder(
stream: FirebaseFirestore.instance
.collection('user')
.doc(FirebaseAuth.instance.currentUser!.uid)
.collection('list')
.doc(widget.docId).collection('activity').orderBy('xTimeStamp', descending: false)
.snapshots(),
),
builder: (context, snapshot) {
final xSnapshot = snapshot.data?.docs;
final Future<void> activityDone = FirebaseFirestore
.instance
.collection('user')
.doc(FirebaseAuth.instance.currentUser!.uid)
.collection('list')
.doc(widget.docId).collection('activity')
.where("status", isEqualTo: true)
.count()
.get().then(
(res) => print(res.count),
onError: (e) => print("Error completing: $e"),
);
String count = activityDone.toString();
if (xSnapshot == null) {
// Error
}, else {
Text("Activities done = $count"),
}
}