FieldValue.increment不起作用,但添加了“操作数”

时间:2019-04-09 09:36:36

标签: javascript firebase google-cloud-firestore google-cloud-functions

我正在使用firebase数据库和带有新FieldValue.increment的简单函数来增加计数器,但这不起作用,但是添加了“操作数”字段而从未增加。

我的功能非常简单:

[1] = [1,2,3]
[2] = [1,2,3]
[3] = [1,2,3]
[4] = [1,2,3]

当我部署并调用此函数时,我希望看到

exports.updateCounters = functions.https.onRequest((req, res) => {
  // grab the parameters.
  const username = req.query.username;

  var updateObject = { };
  updateObject[username] = admin.firestore.FieldValue.increment(1);
  admin.database().ref('counterstest').update(updateObject);
});

但我明白了

countertest: {
  myusername: 1
}

操作数:1即使我多次调用函数也永远不会递增。

有人可以指出我在这里犯什么错误吗?

谢谢!

1 个答案:

答案 0 :(得分:1)

FieldValue.increment()是Cloud Firestore的一项功能,但是您显然正在尝试将其应用于实时数据库。这是行不通的-它们是不同的数据库,并且实时数据库不支持这种原子增量。

您实际上在这里所做的是将返回的FieldValue对象的JSON表示形式写入Realime数据库。显然,在内部,FieldValue对象具有一个称为“操作数”的属性,其中包含要增加的值。