Я пытаюсь отправить облачное сообщение пользователям, которые подписаны на тему.Проблема в том, что я теперь получаю бесконечный цикл на updateRecord.Я пытаюсь поймать это внутри здесь if(newData.count == prevData.count) return null;
, но это не работает.Я думаю, что происходит то, что я обновляю запись в документе firestore, которая затем снова вызывает функцию update, вызывая цикл.
exports.updateRecord = functions.firestore.document("records/{recordsID}").onUpdate((change, context) => {
const newData = change.after.data();
const prevData = change.before.data();
if(newData.count == prevData.count) return null;
let newCount = prevData.count + 1;
const doc = admin.firestore().doc(`/records/{recordsID}`);
doc.set({ count: newCount })
// TODO: - Requires testing
var topic = "global";
const payload = {
data: {
count: `${newCount}`,
firebaseId: `${newData.firebaseId}`,
type: "updateRecord",
}
};
return admin.messaging().sendToTopic(topic, payload)
.then((response) => {
console.log('Message sent successfully');
})
.catch((error) => {
console.log('Error sending message:', error);
});
});