我在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);
});
}
}
答案 0 :(得分:1)
问题在于您是在尝试填充docID
之前尝试使用它,因为getDocuments()
是异步调用,因此您要么必须await
才能填充{{ 1}}或在docId
内部进行所有操作。我推荐后者,它看起来可能像这样:
getDocuments().then()