У меня проблема с тем, что мой скрипт Cloud Function обнаруживает изменение записи от определенного пользователя в базе данных Firestore.
Идея состоит в том, что при инициированном изменении записи я вычисляю новое общее значение для этого пользователя, т.е. когда новое локальное расстояние записывается, я вычисляю новое общее расстояние для облачных функций. К сожалению, похоже, что мой скрипт обнаруживает изменение правильно, но затем записывает новые значения для ВСЕХ uid / документов в базе данных. Я только хочу обновить поля пользователя, для которого было обнаружено изменение. Что я здесь не так делаю?
Я проверил, что значение uid является фактическим идентификатором пользователя, на котором было зарегистрировано изменение, потому что я проверил в журнале консоли после отладки.
module.exports.LogSummary = functions.firestore
.document('Logs/{userId}').onWrite((change, context) => {
const uid = context.params.userId;
let TotalDistance = 0;
TotalDistance =
change.after.data().Running_Distance +
change.after.data().Walking_Distance;
return db
.collection('Logs')
.doc(uid)
.update({
Total_Distance_Cloud: TotalDistance})
.catch(console.error);
});