flutter - 如何使用 FieldValue.Increment 属性添加单值 Flutter

标签 flutter google-cloud-firestore

我有一个帖子列表,其中有一个“帖子喜欢”,用户可以双击图片来喜欢该帖子:

GestureDetector(
                        onDoubleTap: (){
                          FirebaseFirestore.instance.collection('SocialPost').doc(post[index]['postID']).update({
                            'likes': FieldValue.increment(1),
                          });
                        },

但是当然,如​​果用户多次点击图片,则数字会根据他点击的次数而增加。 我希望用户在单击数字时增加 1,如果再次单击则停止,不再执行任何操作。 这种情况该如何处理?

最佳答案

有几种不同的方法可以实现此目的,您可以为每个用户创建一个用户集合,并且在文档中您可以存储用户喜欢的帖子或

在你的 SocialPost 集合中,你可以存储喜欢这个帖子的用户 ID,在增加该值之前,你可以检查用户是否已经喜欢这个帖子(因此用户 ID 数组包含当前用户的 ID)

只有当数组不包含此 id 时,您才会允许它,然后在递增后,您会将用户的 id 添加到数组中。

关于flutter - 如何使用 FieldValue.Increment 属性添加单值 Flutter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66603031/

相关文章:

datetime - 如何使用 UTC 时区偏移量格式化 DateTime?

firebase - 为什么我的快照显示它包含数据?

javascript - 如何将从 useEffect 中获取的初始值放入文本字​​段中?

flutter - Hero Animation 完成后启动 Widget Animation

android - 将其与 Firebase 链接后 Flutter 卡住了

android - 如何将数据从 native 应用程序传递到 flutter?

flutter - 在 Flutter 中更新嵌套 CupertinoPageScaffold 中的 Scaffold-Properties

javascript - Firestore : Retrieve a single document

javascript - 获取 Firebase doc.data 未定义

android - 如何 “append” Firebase查询快照到流