【问题标题】:How to get data from subCollection document, firestore(Flutter)如何从子集合文档中获取数据,firestore(Flutter)
【发布时间】:2020-09-05 21:28:51
【问题描述】:

我在 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);
      });
    }
  }

【问题讨论】:

    标签: firebase flutter dart google-cloud-firestore


    【解决方案1】:

    问题是您在填充docID 之前尝试使用它,因为getDocuments() 是一个异步调用,所以您要么必须await 来填充docId,要么在@ 中执行所有操作987654325@。我会推荐后者,它可能看起来像这样:

    _getData() async {
        var docID;
        var query;
        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;
                query = databaseReference
                            .collection('users')
                            .document(docID)
                            .collection('GPA')
                            .document(sem1)
                            .get()
                            .then((DocumentSnapshot ds) {
                                print(ds.data);
                            });
            });
    }
    

    【讨论】:

      猜你喜欢
      • 2021-08-02
      • 2021-12-16
      • 2021-07-20
      • 2020-06-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-18
      • 2021-07-29
      相关资源
      最近更新 更多