如何保存用户“喜欢”帖子的状态?

Posted

技术标签:

【中文标题】如何保存用户“喜欢”帖子的状态?【英文标题】:how can I save the state of the 'liked' post by the user? 【发布时间】:2020-09-20 19:03:27 【问题描述】:

我在 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);
            
          );
        

【问题讨论】:

给每个帖子一个字段,表示喜欢它的点赞和用户(字符串数组)。每当有人喜欢它时,增加“喜欢”计数器并在“用户列表”字段中添加该用户 ID/名称。 谢谢@KetanRamteke。 @KetanRamteke 我该如何查询这个? ***.com/q/62194361/13647913 【参考方案1】:

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

【讨论】:

谢谢。不保存,但我会试试看。

以上是关于如何保存用户“喜欢”帖子的状态?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Kotlin 中保存延迟帖子的状态

Like 按钮状态未保存

如何在 Parse 中存储喜欢帖子的人?

如何使用 Firebase 实时数据库创建特定用户所有已保存帖子的列表?

如何在laravel中将用户帖子保存在数据库中?

Cassandra,查询主键,跳过聚类列(timeuuid)