Firebase 使用Firestore的Flatter Dart,如何从一个集合中获取参考文档?

Firebase 使用Firestore的Flatter Dart,如何从一个集合中获取参考文档?,firebase,flutter,dart,google-cloud-firestore,Firebase,Flutter,Dart,Google Cloud Firestore,我创建了两个集合,如下所示: 用户-文档ID(来自身份验证的uid)-字段和子集合(位置) opportunities-(自动生成的文档Id)-字段(其中一个字段是上述集合中的locationDocumentId) 我正在以流的形式检索Opportunity,我在Opportunity类中创建了一个映射。 我希望在Opportunity类中有Location对象引用,并在检索Opportunity时填充该对象 我对Firestore和Flatter很陌生,所以被困在这里 请告诉我如何才能做到这一

我创建了两个集合,如下所示: 用户-文档ID(来自身份验证的uid)-字段和子集合(位置)

opportunities-(自动生成的文档Id)-字段(其中一个字段是上述集合中的locationDocumentId)

我正在以流的形式检索Opportunity,我在Opportunity类中创建了一个映射。
我希望在Opportunity类中有Location对象引用,并在检索Opportunity时填充该对象

我对Firestore和Flatter很陌生,所以被困在这里

请告诉我如何才能做到这一点

多谢各位

获取机会的代码

  // ALL Opportunities
  Stream<List<Opportunity>> get opportunities {
    return _oppRef
        .orderBy('lastUpdated', descending: true)
        .snapshots()
        .map(_allOpportunitiesFromSnapshot);
  }

  List<Opportunity> _allOpportunitiesFromSnapshot(QuerySnapshot snapshot) {
    return snapshot.documents.map((doc) {
      return Opportunity.fromMap(doc.data, doc.documentID);
      //HERE I WANTED TO ADD CODE TO GET LOCATION AS
      //var opp = Opportunity.fromMap(doc.data, doc.documentID);
      // opp.location ???
    }).toList();
  }


// 
Future<DocumentSnapshot> getLocation(
      String locationId, String createdBy) async {
    return await _docRef
        .document(createdBy)
        .collection('locations')
        .document(locationId)
        .get();
  }
//所有机会
获得机会{
返回_oppRef
.orderBy('lastUpdated',降序:true)
.快照()
.map(_allopportunitiesfrom snapshot);
}
列表_allOpportunitiesFromSnapshot(QuerySnapshot快照){
返回snapshot.documents.map((doc){
返回Opportunity.fromMap(doc.data,doc.documentID);
//在这里,我想添加代码以获取位置
//var opp=Opportunity.fromMap(doc.data,doc.documentID);
//位置???
}).toList();
}
// 
未来获取位置(
字符串位置ID,字符串createdBy)异步{
返回等待_docRef
.document(createdBy)
.collection('位置')
.文件(位置ID)
.get();
}

我已经做了一些研究,我想结束这篇文章,因为我确实需要重新设计我的数据模型。我一直从事关系数据库设计,具有更多的规范性。我已经研究过了,用NoSQL做这件事并不是最好的做法(我也是NoSQL的新手)。
感谢雷诺的加入。

请分享您为opportunities编写的代码。你好,雷诺,我已经用代码更新了问题。谢谢。如果有人知道如何更好地建模firestore数据库的好资源,请传递。非常感谢。