首页 > 解决方案 > 如何保存用户“喜欢”帖子的状态?

问题描述

我在 Firestore 中有两个集合,“用户”和“帖子”。主页是所有帖子都显示在列表视图中的地方,每个帖子都有一个“喜欢”按钮。我将喜欢的帖子保存在final _likedPosts = Set<Posts>();页面上的一组中,但它只是暂时保存喜欢的帖子,一旦应用程序关闭,它就会丢失所有数据。如何永久保存用户的 _likedPosts 以便保留数据。我应该对用户进行什么查询以保留 _likedPosts?或者还有其他方法吗?

这就是 Icon 和 onTap 目前的样子,

final _likedPosts = _savedPosts.contains(post);

Icon(_likedPosts ? Icons.favorite : Icons.favorite_border,
            color: _likedPosts ? Colors.red : null),
        onTap: () {
          setState(() {
            if (_likedPosts) {
              _savedPosts.remove(post);
            } else {
              _savedPosts.add(post);
            }
          });
        }

标签: fluttergoogle-cloud-firestoreflutter-layout

解决方案


您是否正在保存某个用户的点赞帖子?然后我建议获取该帖子(ID)并将其保存到每个用户的用户文档 Liked-Posts 中的数组中。因为除非您使用外部数据库,否则状态不会持久或无法保存。


推荐阅读