При увеличении Firestore, что произойдет, если вы используете ее в облачной функции, а облачная функция будет случайно вызвана дважды?
Чтобы убедиться, что ваша функция работаетправильно при повторных попытках выполнения вы должны сделать его идемпотентным , реализовав его так, чтобы событие приводило к желаемым результатам (и побочным эффектам), даже если оно доставлено несколько раз.
Например, функция пытается увеличить поле документа на 1
document("post/Post_ID_1").
updateData(["likes" : FieldValue.increment(1)])
Так, хотя приращение может быть атомарным это не идемпотент ?Если мы хотим сделать наши счетчики идемпотентными , нам по-прежнему нужно использовать транзакцию и отслеживать, кто был последним, кому понравился пост?