我正在尝试获取用户id,并使用firestore检查flutter中是否存在,但我没有得到正确的结果。
handlesearch() {
final form = formkey.currentState;
final Future<QuerySnapshot> result = Firestore.instance
.collection('users')
.where('userid', isEqualTo: form)
.getDocuments();
setState(() {
searchresult = result;
});
buildsearch() {
return AppBar(
title: Container(
padding: EdgeInsets.all(10.0),
child: Column(
children: <Widget>[
Form(
key: formkey,
child: TextFormField(
controller: searchcontroller,
onSaved: (val) => userid = val,
// onFieldSubmitted: handlesearch,
),
),
RaisedButton(
child: Text('submit'),
onPressed: handlesearch,
)
],
@override
Widget build(BuildContext context) {
Scaffold(
appBar:buildsearch(),
body:
return FutureBuilder(
future: searchresult,
builder: (BuildContext context, AsyncSnapshot snapshot) {
if(snapshot.hasData){
return buildexists();
}
return builddoesntexists();
}
);
}
}发布于 2020-02-18 18:33:44
我不明白为什么或者如何使用formkey.currentState来获取用户id。
相反,您可能希望使用表单控制器:searchcontroller.text
但是由于您将其保存在一个自定义变量中,因此您也可以使用它:userid
注意:在您的onSaved函数中,请确保调用setState以使用更新后的值进行重新构建:
onSaved: (val) => setState(() => userid = val);https://stackoverflow.com/questions/60276034
复制相似问题