我有一个帖子列表,其中有一个“帖子喜欢”,用户可以双击图片来喜欢该帖子:
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/