''文本(FirebaseFirestore.instance.collection("发送请求"(.其中("status",isEqualTo:"waiting"(.where("pickupDate";,其中In:[nextBusinessDay.toString((](.snapshots((.length),''
错误:无法将参数类型"Future"分配给参数类型"String"。
让我们分解一下您的表达式:
FirebaseFirestore.instance // Returns a FirebaseFirestore
.collection('laundryRequest') // Returns a CollectionReference
.where("status", isEqualTo: 'waiting') // Returns a Query
.where("pickupDate", whereIn: [nextBusinessDay.toString()]) // Returns a Query
.snapshots() // Returns a Stream<QuerySnapshot>
.length // Returns a Future<int>
每次出现Future
时,都必须使用await
,因此您的代码应该是:
await FirebaseFirestore.instance
.collection('laundryRequest')
.where("status", isEqualTo: 'waiting')
.where("pickupDate", whereIn: [nextBusinessDay.toString()])
.snapshots()
.length
请注意,要使用await
,您必须处于async
上下文中。
您可能需要将其提取到一个变量中,例如length
:
final int length = await FirebaseFirestore.instance
.collection('laundryRequest')
.where("status", isEqualTo: 'waiting')
.where("pickupDate", whereIn: [nextBusinessDay.toString()])
.snapshots()
.length;
要在Text
小部件中使用它,可以使用字符串格式:
Text("$length")