如何从查询的文档Flutter / Firetore中获取字段

时间:2018-07-05 00:12:55

标签: firebase dart google-cloud-firestore flutter

我需要查询用户的信息,但到目前为止,我仍然停留在应该如何从保留当前登录用户信息的文档字段中获取值的方法:

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)
          )
        ]
      )
    )
  );
}

我有一个名为“用户”的集合,新用户注册该集合时会创建一个文档来存储其信息。该文档的字段类型为String:“电子邮件”,“ firstName”,“ lastName”。

1 个答案:

答案 0 :(得分:2)

您可以从该documents引用中获取collection,之后,您应该从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'];
                  });
          }