Я слежу за документацией для Firestore здесь, на Aggregation Queries .
Я не мог не заметить, что решение облачной функции не будет работать точно, так как оно не идемпотентно:numRatings
увеличивается и avgRating
вычисляется каждый раз.
Хотя этот пример можно сделать идемпотентным, если бы для каждого нового рейтинга также хранился отдельный документ: вы бы добавили проверку, если пользователь имеетрейтинг ресторана уже представлен.
Что-то мне не хватает, что делает этот пример идемпотентным?Или цель примера просто показать, что это можно сделать в облачной функции?