【发布时间】:2021-12-26 05:22:34
【问题描述】:
我是 Flutter 的新手,正在使用 this tutorial 开发一个基本的社交媒体应用程序。每个帖子都有一个存储在 Firestore 上的列表,其中包含喜欢该帖子的用户的 userId。现在我想使用这个列表来查询用户集合中的用户并显示喜欢的用户,就像在其他所有社交媒体中一样。尝试使用同一教程的this 视频中的 UserResult 类来显示喜欢。我应该如何从列表中获取 UserResults 并显示它们?
我做了以下功能来建立喜欢。
buildLikes() {
Future<QuerySnapshot> users=usersRef.where(usersRef.id, arrayContains: likes ).getDocuments();
print(users);
return FutureBuilder(
future: users,
builder: (context, snapshot) {
if (!snapshot.hasData) {
return circularProgress();
}
List<UserResult> searchResults = [];
snapshot.data.documents.forEach((doc) {
User user = User.fromDocument(doc);
UserResult searchResult = UserResult(user);
searchResults.add(searchResult);
});
return ListView(
children: searchResults,
);
},
);
}
它被称为
Row(
children: <Widget>[
GestureDetector(
onTap:()=> Navigator.push(
context,
MaterialPageRoute(
builder: (context)=>buildLikes()
)
),
child: Icon(
Icons.account_tree_rounded,
size: 28.0,
color: Colors.blue[900],
),
),
Text(
likesCount.toString(),
),
],
),
在 post 模型的 buildPostFooter() 构建函数中。
@override
Widget build(BuildContext context) {
isLiked = likes[currentUserId] == true;
print(isLiked);
print("Building widget");
return Column(
mainAxisSize: MainAxisSize.min,
children: <Widget>[
buildPostHeader(),
buildPostBody(),
buildPostFooter(),
],
);
}
此方法不显示任何内容。
【问题讨论】:
标签: firebase flutter dart google-cloud-firestore