【发布时间】:2022-01-06 16:32:31
【问题描述】:
我试图从两个不同的集合中获取,但我遇到了一个奇怪的情况。首先,我想从帖子集合中获取用户 ID。然后使用该用户 ID,我想从用户集合中获取数据。
因此,当我仅从帖子集合中获取时,打印命令可以正常工作并打印用户 ID。
但是当我添加我在下面的代码中显示的用户获取语句时,它不会获取它并显示一个空字符串 (''),并且用户集合发送错误,因为我无法搜索用户 ID。我在这里错过了什么?
class _ProductDetail extends State<ProductDetail> {
String getTitle = '';
String getLocation = '';
String getPrice = '';
String getImage = '';
String getUniversity = '';
String getProfileImage = '';
String getUserName = '';
String getSellerUserID = '';
@override
Widget build(BuildContext context) {
FirebaseFirestore.instance
.collection('posts')
.doc(widget.postID)
.get()
.then((incomingData) {
setState(() {
getTitle = incomingData.data()!['title'];
getPrice = incomingData.data()!['price'];
getImage = incomingData.data()!['postImage'];
});
});
FirebaseFirestore.instance
.collection('posts')
.doc(widget.postID)
.get()
.then((incomingData) {
setState(() {
getSellerUserID = incomingData.data()!['userID'];
});
});
print(getSellerUserID); //statement that will print the userID
//////////////////////IF I DELETE THIS SECTION, IT PRINTS THE USER ID//////////////////
FirebaseFirestore.instance
.collection('users')
.doc(getSellerUserID)
.get()
.then((incomingData) {
setState(() {
getUserName = incomingData.data()!['username'];
getProfileImage = incomingData.data()!['profileImage'];
getUniversity = incomingData.data()!['university'];
getLocation = incomingData.data()!['location'];
});
});
///////////////////////////////////////////////////////////////////////////////////////////////
return Scaffold(
....... rest of the code
【问题讨论】:
标签: firebase flutter dart google-cloud-firestore