Cloud Firestore, nodejs (облачные функции), синхронизировать доступ - PullRequest
0 голосов
/ 21 января 2020

Что такое Java эквивалент «синхронизации» в Firestore, nodejs (облачные функции)?

Предположим, у меня есть счетчик в БД, и я хочу увеличить его на 1, поэтому я должны прочитать значение, увеличить его и сохранить обратно.

Как мне убедиться, что значение счетчика не изменилось другой стороной, между действием чтения и записи?

1 Ответ

2 голосов
/ 21 января 2020

Как убедиться, что значение счетчика не изменилось другой стороной, между действием чтения и записи?

Существует два способа решения этой проблемы.

Первый - использовать транзакцию , которая представляет собой операцию, в которой вы читаете значение из документа, увеличиваете его, а затем записываете документ обратно.

Вторым решением будет использование оператора FieldValue.increment (50) :

Операция приращения увеличивает или уменьшает текущее значение поля на заданную величину. Если поле не существует или текущее значение поля не является числовым значением c, операция устанавливает поле в заданное значение.

Если вам нужно в какой-то момент времени уменьшить значение значение, просто передайте отрицательное значение в функцию increment():

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...