Как увеличить существующее числовое поле в Cloud Firestore - PullRequest
0 голосов
/ 08 июня 2018

У меня есть поле, которое указывает количество транзакций.Я хотел бы увеличить его на 1, как только произойдет транзакция.Я не смог найти какой-либо метод для непосредственного выполнения этого.

Один из способов - сначала получить пользователя, а затем обновить поле полученным значением + 1, но это слишком долго и медленно.

Может кто-нибудь сказать мне другой возможный метод?

Ответы [ 2 ]

0 голосов
/ 08 июня 2018

Firestore теперь имеет специальный оператор для этого, называемый FieldValue.increment().Применяя этот оператор к полю, значение этого поля можно увеличивать (или уменьшать) как одну операцию на сервере.

Из документации Firebase по увеличивая числовое значение :

var washingtonRef = db.collection('cities').doc('DC');

// Atomically increment the population of the city by 50.
washingtonRef.update({
    population: firebase.firestore.FieldValue.increment(50)
});

Таким образом, этот пример увеличивает население на 50, независимо от того, что является текущим значением.Если поле еще не существует (или не является числом), в этом случае оно устанавливается на 50.

0 голосов
/ 08 июня 2018

Вы должны написать облачную функцию, которая прослушивает транзакцию, а затем увеличить индекс.

https://firebase.google.com/docs/functions/

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