【问题标题】:Retrieve Users from a List of IDs and display them in Flutter从 ID 列表中检索用户并在 Flutter 中显示
【发布时间】: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


    【解决方案1】:

    您可以在 link 上查询您的 FirebaseFirestore 实例。然后您可以使用 map 函数将它们转换为 UserResults。由于您没有共享任何代码,因此很难进一步澄清。

    【讨论】:

      猜你喜欢
      • 2019-08-21
      • 2021-11-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-25
      • 1970-01-01
      相关资源
      最近更新 更多