Firebase 使用Firestore的Flatter Dart,如何从一个集合中获取参考文档?
我创建了两个集合,如下所示: 用户-文档ID(来自身份验证的uid)-字段和子集合(位置) opportunities-(自动生成的文档Id)-字段(其中一个字段是上述集合中的locationDocumentId) 我正在以流的形式检索Opportunity,我在Opportunity类中创建了一个映射。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很陌生,所以被困在这里 请告诉我如何才能做到这一
我希望在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数据库的好资源,请传递。非常感谢。