颤动检查云Firestore集合中是不是存在用户ID

Posted

技术标签:

【中文标题】颤动检查云Firestore集合中是不是存在用户ID【英文标题】: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();

        
        );
      

【问题讨论】:

【参考方案1】:

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

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

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

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

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

【讨论】:

以上是关于颤动检查云Firestore集合中是不是存在用户ID的主要内容,如果未能解决你的问题,请参考以下文章

检查 Firestore 集合元素是不是存在

如何检查 Flutter Firestore 中是不是存在用户文档?

Firestore/Swift 4:检查用户名是不是存在?

Swift 5 Firestore:检查数据库中是不是存在集合

当规则禁止除用户之外的任何人阅读时,检查 Firestore 用户是不是存在

使用 React Hooks 和 Context 检查电子邮件是不是已经存在于 Firestore 的集合中