【问题标题】:flutter check if user id exists in cloud firestore collection颤动检查云Firestore集合中是否存在用户ID
【发布时间】:2020-02-18 07:45:06
【问题描述】:

我正在尝试获取用户 id 并使用 firestore 检查是否存在于颤振中,但我没有得到正确的结果。

 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();

        }
        );
      }
}

【问题讨论】:

    标签: forms flutter dart google-cloud-firestore exists


    【解决方案1】:

    我不明白您为什么或如何使用 formkey.currentState 来获取用户 ID。

    相反,您可能想要使用表单控制器:searchcontroller.text

    但由于您将其保存在自定义变量中,您也可以使用它:userid

    注意:在您的 onSaved 函数中,请务必调用 setState 以使用更新后的值进行重建:

    onSaved: (val) => setState(() => userid = val);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-19
      • 2021-12-22
      • 2019-01-21
      • 2021-09-15
      • 2021-11-02
      • 2020-11-17
      相关资源
      最近更新 更多