【问题标题】:increment firebase field value in flutter?在颤动中增加firebase字段值?
【发布时间】:2020-03-05 06:10:39
【问题描述】:

我对下面的代码有疑问。

我想创建一个博客应用程序,我想让人们喜欢帖子,当有人点击喜欢按钮时它

应该增加firebase中的字段值,如果他再次点击它会减少值。

我的代码:-


bool liked = false;

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

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

【问题讨论】:

  • 您分享的代码有什么问题?运行时它会做什么?
  • 喜欢只会增加
  • 听起来liked 总是false.. Did you check if the state actually gets changed when you call setState`?
  • 是的,我已经检查过了
  • 如果可能的话,你可以添加你的完整代码。

标签: firebase flutter dart google-cloud-firestore


【解决方案1】:

似乎您的 liked 值即使在 setState 之后也会返回 false。您在更新数据之前检查过liked。你能告诉我们你在哪里声明你的变量吗?

【讨论】:

  • 正如你所说,我会尝试通过共享偏好来解决这个问题。
【解决方案2】:

从您的代码看来,每次单击“喜欢”的值似乎都是错误的。这使您的代码只需将值增加一。您必须检查用户之前是否喜欢过该帖子,然后更改“喜欢”布尔值的状态。

【讨论】:

    猜你喜欢
    • 2020-07-26
    • 2015-05-09
    • 2019-07-24
    • 2011-06-25
    • 1970-01-01
    • 1970-01-01
    • 2020-04-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多