Flutter Firestore-显示具有所有值的特定文档

时间:2020-06-16 10:15:13

标签: firebase flutter google-cloud-firestore

当用户转到个人资料页面查看自己的信息时,我一直试图显示文档。到目前为止,我所做的是:

  class Profile extends StatefulWidget {

  Profile({Key key}) : super(key: key);

  @override
  _ProfileState createState() => _ProfileState();

}

class _ProfileState extends State<Profile> {

  Firestore _firestore = Firestore.instance;
  List<DocumentSnapshot> _members = [];

  bool _loading = true;

  _getMember() async {
    var firebaseUser = await FirebaseAuth.instance.currentUser();
   Query query = _firestore.collection("membership");
    setState(() {
      _loading = true;
    });
   QuerySnapshot querySnapshot = await query.getDocuments();
   _members = querySnapshot.documents;
     setState(() {
     _loading = false;
   });
  }

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

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text("Profile"),
      ),
      body: Container(
        child: _members.length == 0 ? Center(child: Text("empty"),) : ListView.builder(
            itemCount: _members.length,
            itemBuilder: (BuildContext context, int index) {
          return ListTile(
            title: Text(_members[index].data["name"]),
          );
        }),
      ),
    );
  }
}

但这仅显示名称。此外,它还显示了我不想发生的来自同一集合的另一个文档。

My collection:

我的问题是: 如何获取具有文档中所有值的特定文档的数据? 以特定顺序,例如:

名称:gün

姓氏:uluutku

年龄:59

重量:90

电话号码:+05075326895

注意:我使用用户ID作为文档ID。

1 个答案:

答案 0 :(得分:0)

正如评论中指出的那样,您必须遵循文档的路径,而不仅仅是查询整个Collection以从用户那里收集信息。这是一个如何使用用户ID检索文档的示例:

  void _onPressed() async{
    var firebaseUser = await FirebaseAuth.instance.currentUser();
    firestoreInstance.collection("users").document(firebaseUser.uid).get().then((value){
      print(value.data);
    });
  }

您可以在here

中找到更多有关如何执行此操作的示例