如何将Firebase变量用作整数?

时间:2019-03-28 16:43:44

标签: javascript firebase firebase-realtime-database

我有一个简单的程序,您可以发布/接受游戏,然后报告分数。我有一个更新分数的问题,因为存储在firebase中的信息存储为字符串。如何将我的分数作为整数添加?

        if (selfScore > oppScore) {
        var ref = new Firebase('taken out');
            var selfRef = firebase.database().ref("users/" + (selfKey));
            selfRef.update({
                "tScore":  ("tScore" + 3)
            });
        }

理想情况下,分数将取前一个分数并加3,但事实并非如此。我是Firebase的新手,所以如果这很明显,那就不好了。进行编辑以弄清楚我何时删除tscore并仅拥有tScore:+3只会将tScore更改为3,而不会添加。

1 个答案:

答案 0 :(得分:2)

您无法在update()方法中对字段值进行某些操作。因此,您应该首先从数据库中读取该值,然后使用新值更新该记录。

最好的方法是使用transaction进行此类操作,该操作将自动执行读/写操作,此外,请确保“与其他客户端在同一位置写入相同位置没有冲突时间”。

然后您将执行以下操作:

var selfRef = firebase.database().ref("users/" + selfKey + "/tScore");
selfRef.transaction(function(currentValue) {
  return currentValue + 3;
});