Как использовать мои переменные Firebase в качестве целого числа? - PullRequest
1 голос
/ 28 марта 2019

У меня есть простая программа, которая позволяет публиковать / принимать игры, а затем сообщать о результатах.У меня проблема с обновлением счета, поскольку информация, хранящаяся в базе данных, хранится в виде строки.Как мне взять мой счет как целое число, чтобы добавить к нему?

        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 Ответ

2 голосов
/ 28 марта 2019

Нельзя выполнить некоторые операции со значением поля в методе update(). Таким образом, вы должны сначала прочитать значение из базы данных, а затем обновить запись новым значением.

Наилучшим подходом является использование транзакции для такой операции, которая автоматически выполняет операцию чтения / записи и, кроме того, гарантирует, что «не будет конфликтов с другими клиентами, выполняющими запись в то же место в в то же время".

Затем вы должны сделать следующее:

var selfRef = firebase.database().ref("users/" + selfKey + "/tScore");
selfRef.transaction(function(currentValue) {
  return currentValue + 3;
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...