如何从子集合文档中获取数据,firestore(Flutter)

时间:2020-05-19 17:43:40

标签: firebase flutter dart google-cloud-firestore

我在firebase中有一个数据收集。 它具有用户数据文档,并且每个文档都包含一个称为GPA的集合。 在GPA集合中,有8个文档,我想从一个名为sem1的文档中获取数据 这是我的getData函数。但这不起作用 请给我一个解决方案。

_getData() async {
    {
      var docID;
      var firebaseUser = await FirebaseAuth.instance.currentUser();
      final databaseReference = Firestore.instance;
      databaseReference
          .collection("users")
          .where('uid', isEqualTo: firebaseUser.uid)
          .getDocuments()
          .then((querySnapshot) {
        docID = querySnapshot.documents[0].reference.documentID;
      });

      var query = databaseReference
          .collection('users')
          .document(docID)
          .collection('GPA')
          .document(sem1)
          .get()
          .then((DocumentSnapshot ds) {
        print(ds.data);
      });
    }
  }

1 个答案:

答案 0 :(得分:1)

问题在于您是在尝试填充docID之前尝试使用它,因为getDocuments()是异步调用,因此您要么必须await才能填充{{ 1}}或在docId内部进行所有操作。我推荐后者,它看起来可能像这样:

getDocuments().then()