在flutter中增加Firebase字段值?

时间:2019-11-08 15:28:38

标签: firebase flutter dart google-cloud-firestore

我下面的代码有问题。

我想创建一个博客应用,我想让人们喜欢帖子,并且当有人单击“喜欢”按钮时

应该增加firebase中的字段值,如果他再次单击,则会减小该值。

我的代码:-


bool liked = false;

------------------

onPressed: () async {
          await Firestore.instance
              .collection('posts')
              .document('${widget.uid}')
              .updateData(
            {
              "likes": FieldValue.increment(
                (liked ? (-1) : (1)),
              ),
            },
          );
          setState(() {
            liked = !liked;
          });
        },

2 个答案:

答案 0 :(得分:0)

似乎liked的值即使在setState之后也返回false。您是否在更新数据之前检查过liked。您能告诉我们确切的声明变量的位置吗?

答案 1 :(得分:0)

在您的代码中,好像您每次单击“ liked”的值都是false。这使您的代码仅将值增加一。您必须检查用户之前是否喜欢该帖子,然后更改“喜欢”布尔的状态。