【问题标题】:How to get a field from a queried document Flutter/Firetore如何从查询的文档 Flutter/Firestore 中获取字段
【发布时间】:2018-07-05 00:12:55
【问题描述】:

我需要查询用户的信息,但到目前为止,我一直在思考如何从保存当前登录用户信息的文档中的字段中获取值:

String firstName = "";
String lastName = "";

void getInfo() async{
  var user = FirebaseAuth.instance.currentUser();
  var userQuery = Firestore.instance.collection('Users').where('e-mail', isEqualTo: '$user.email');

  // WHAT SHOULD I DO NEXT

}

@override
void initState(){
   super.initState();
   getInfo();
}

@override
Widget build(BuildContext context){
  return new Scaffold(
    body: new Container(
      child: new ListView(
        children: <Widget>[
          new ListTile(
            title: new Text(firstName)
          ),
          new ListTile(
            title: new Text(lastName)
          )
        ]
      )
    )
  );
}

我有一个名为“用户”的集合,当新用户注册时,它会创建一个文档来存储他的信息。该文档具有字符串类型的字段:“电子邮件”、“名字”、“姓氏”。

【问题讨论】:

    标签: firebase dart google-cloud-firestore flutter


    【解决方案1】:

    您可以从 collection 引用中获取 documents,之后您应该从 document 中获取数据,如下所示:

       var user = await FirebaseAuth.instance.currentUser();
          var userQuery = Firestore.instance.collection('Users').where('e-mail', isEqualTo: user.email).limit(1);
          userQuery.getDocuments().then((data){ 
              if (data.documents.length > 0){
                  setState(() {
                        firstName = data.documents[0].data['firstName'];
                        lastName = data.documents[0].data['lastName'];
                      });
              }
    

    【讨论】:

    • 在您的示例中,您通过电子邮件字段查询用户。但是likedUsers是一个集合
    猜你喜欢
    • 1970-01-01
    • 2019-11-27
    • 1970-01-01
    • 1970-01-01
    • 2020-12-05
    • 2020-10-11
    • 2019-03-21
    • 2021-11-12
    • 2021-10-21
    相关资源
    最近更新 更多