我有一个按钮来选择时间,并检查Firestore中是否有一个值,如果有,则禁用具有数据库中值的按钮
无论如何,当我按下按钮时,导航器就会起作用
Future<bool> checkNote(String pickedDay, String pickedTime) async{
final QuerySnapshot result = await Firestore.instance
.collection('customers')
.where('pickedDay',isEqualTo: pickedDay)
.where('pickedTime', isEqualTo: pickedTime)
.limit(1)
.getDocuments();
final List<DocumentSnapshot> documents = result.documents;
return documents.length == 1;
}
...
new FlatButton(
key: Key("10:00"),
onPressed: () {
String pickedTime = "10:00";
if (checkNote(pickedDay.toString(), pickedTime) == true){
setState(() {
print(pickedTime);
FlatButton(onPressed: null,
child: Text(
"Picked time is already busy",
style: TextStyle(fontSize: 16.0),
),);
});
}
else {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) =>
Approval(
picked: pickedDay,
timePicked: pickedTime,
userPhone: phoneNumber,
service: service),
));
}
},
child: Text(
"10:00",
style: TextStyle(fontSize: 16.0),
),
),
那么我该如何实现:
当用户单击按钮时,将检查Firestore中的现有值,如果值相等,则按钮进入关闭状态,并显示一条消息,提示已选择时间已经过去了。还有
创建一个StreamBuilder并在应用程序的上一页(其中选择星期几)上基于所选日期显示按钮,例如,如果您选择6月25日,而Firestore值(从6月25日开始),然后页面会关闭这些按钮,这些按钮的值位于Firestore中