我正在使用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即使我多次调用函数也永远不会递增。
有人可以指出我在这里犯什么错误吗?
谢谢!
答案 0 :(得分:1)
FieldValue.increment()
是Cloud Firestore的一项功能,但是您显然正在尝试将其应用于实时数据库。这是行不通的-它们是不同的数据库,并且实时数据库不支持这种原子增量。
您实际上在这里所做的是将返回的FieldValue对象的JSON表示形式写入Realime数据库。显然,在内部,FieldValue对象具有一个称为“操作数”的属性,其中包含要增加的值。