我下面的代码有问题。
我想创建一个博客应用,我想让人们喜欢帖子,并且当有人单击“喜欢”按钮时
应该增加firebase中的字段值,如果他再次单击,则会减小该值。
我的代码:-
bool liked = false;
------------------
onPressed: () async {
await Firestore.instance
.collection('posts')
.document('${widget.uid}')
.updateData(
{
"likes": FieldValue.increment(
(liked ? (-1) : (1)),
),
},
);
setState(() {
liked = !liked;
});
},
答案 0 :(得分:0)
似乎liked
的值即使在setState之后也返回false。您是否在更新数据之前检查过liked
。您能告诉我们确切的声明变量的位置吗?
答案 1 :(得分:0)
在您的代码中,好像您每次单击“ liked”的值都是false。这使您的代码仅将值增加一。您必须检查用户之前是否喜欢该帖子,然后更改“喜欢”布尔的状态。