flutter - 如何保存用户“喜欢”帖子的状态?
问题描述
我在 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)并将其保存到每个用户的用户文档 Liked-Posts 中的数组中。因为除非您使用外部数据库,否则状态不会持久或无法保存。
推荐阅读
- c - 在无限循环中同步父子节点
- reactjs - 将类组件转换为钩子:useDispatch/useSelector:在哪里调用它,这里有什么问题?
- java - 如何在 Java 中用逗号和换行符 (\n) 分割字符串?
- python - 用于验证条形码的正则表达式
- sql - ORA-01861: 文字与格式字符串不匹配(我不知道为什么这不起作用。)
- javascript - 尝试将nodejs应用程序部署到涉及QS包的Heroku时出现3个高错误
- javascript - backgroundImage 没有反应,只是默认的白色背景
- powershell - 尝试使用 Powershell 安装 Sysinternals 时的警告
- wordpress - 在 wordpress 中加载块时运行一段代码
- nativescript - 如何在纯javascript中使用nativescript的多个项目模板