Gostaria de exibir o número de documentos que correspondem a uma consulta específica. A consulta é um valor booleano, portanto, exiba o número de documentos que possuem o valor "true". Encontrei várias perguntas relacionadas a isso no Stack Overflow, mas apenas o código a seguir atende às minhas necessidades.
O código a seguir imprime o número correto no console, mas preciso de ajuda para exibi-lo na tela.
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"),
);
Não consigo fazer esse código de contagem funcionar.
String count = activityDone.toString();
Gostaria de usar o código de contagem em um texto como este
Text("Activities done = $count"),
Código completo
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"),
}
}