[英]How do I get data in subcollection from filtered document in Firestore
[英]How to get data from subCollection document, firestore(Flutter)
我在 firebase 中有一个数据集合。 它有用户数据文档,每个文档都包含一个称为 GPA 的集合。 在 GPA 集合中有 8 个文档,我想从一个名为 sem1 的文档中获取数据,这是我的 getData function。 但它不起作用请给我一个解决方案。
_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);
});
}
}
问题是您在填充docID
之前尝试使用它,因为getDocuments()
是一个异步调用,因此您要么必须await
填充docId
要么在getDocuments().then()
中执行所有操作。 我会推荐后者,它可能看起来像这样:
_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);
});
});
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.