У меня есть простая функция в Cloud Functions, которая запускается, когда происходит какое-либо обновление в моем «клиентском» месте в моей базе данных Cloud Firestore.
Проблема в том, что когда я обновляю данные, как только он изменяет дочерний элемент lastUpdated документа, который был обновлен до секунд 1572841408099, а затем я снова изменяю дочерний элемент, он всегда возвращается lastUpdated к метке времени Cloud Firestore, которая соответствует времени: «3 ноября 2019 г. в 21:44:16 UTC-6» независимо от того, сколько времени на самом деле.
Как получить следующий код, чтобы надежно возвращать время обновления данных?
import * as functions from 'firebase-functions';
export const clientUpdatedTask = functions.firestore.document('clients/{clientId}').onUpdate((change: any, context: any) => {
const before = change.before.data();
const after = change.after.data();
const timeEdited = Date.now();
if(before.lastUpdated.seconds !== after.lastUpdated.seconds) {
return 'The Time Did Not Change. No Need To Run Update!';
} else {
return change.after.ref.update({'lastUpdated' : timeEdited}, {merge: true});
}
});
Почему он возвращается к обычной метке времени на какое-то время в прошлом при втором подтексте? Кроме того, почему он прыгает между секундами и отметкой времени при каждом обновлении?