firebase - Flutter Firestore如何在提交之前检查Firestore中的现有数据作为用户类型
问题描述
我_buildLocation
在AddRoom
课堂上有一个小部件。我想在将数据提交到 Firestore 之前检查 Firestore 中的位置并显示错误消息。目前,我已经尝试使用StreamBuilder
并FutureBuilder
从 Firestore 获取位置。Validator
但是我怎样才能显示与用户单击提交时相同的错误消息。当用户输入它时,我似乎无法location
从 Firestore进行比较location
。
Widget _buildLocation(RoomProvider roomProvider) {
return TextFormField(
decoration: InputDecoration(labelText: 'Locations'),
maxLength: 100,
validator: (value) {
if (value == null || value.isEmpty) {
return 'Locations is Required';
}
return null;
},
onSaved: (value) {
roomProvider.changeLocation(value!);
},
);
}
Future<bool> locationExist(String location) async {
final QuerySnapshot result = await FirebaseFirestore.instance
.collection('rooms')
.where('location', isEqualTo: location.toLowerCase())
.limit(1)
.get();
final List<DocumentSnapshot> document = result.docs;
return document.length == 1;
}
@override
Widget build(BuildContext context) {
final roomProvider= Provider.of<RoomProvider>(context);
final houses = Provider.of<List<Room>>(context);
return Scaffold(
body: Padding(
child: Form(
key: _formKey,
child: ListView(
children: <Widget>[
_buildLocation(roomProvider),
// Many field
ElevatedButton(), //Check Validation and submit to Firestore
],
),
)),
);
}
解决方案
推荐阅读
- java - SOLR 中的日期问题,有时会增加毫秒
- python - 正则表达式不会子字符 '\\'
- react-native - 如何使用javascript将变量从本机反应传递到webview?
- android - 自定义浏览片段
- amazon-web-services - 存储在 AWS 中的应用程序日志是顺序格式还是并发格式?
- python - 对于具有形状 (2,2) 的 numpy 数组,为什么 imshow 命令沿 x 和 y 轴显示一系列值?这些价值观是什么?
- javascript - 返回多个 Sequelize 查询的结果
- python - 在 pandas 中执行模糊字符串匹配的更快方法
- reactjs - 使用 react-final-form 时选择焦点文本
- swift - 在scenekit中使用.obj从文档目录加载.mtl文件以获得纹理