Я работаю над проектом Firebase и хочу получать облачные сообщения Firebase (отправленные с сервера Node.js) в моем сервис-воркере в моем проекте javascript. Это работает нормально, но теперь я хочу сохранить некоторые данные в моем облачном хранилище firebase от моего сервис-воркера после получения уведомления. И есть проблема, у меня ошибка, указанная ниже:
Uncaught ReferenceError: XMLHttpRequest is not defined at Ln.<anonymous> (xmlhttp.js:167) at Me (channelrequest.js:512) at Ce (webchannelbase.js:1249) at Kn.xa (webchannelbase.js:1251) at re (run.js:124)
Уже несколько дней я пытаюсь найти ошибку, но не могу найти решение до сих пор. Поэтому я надеюсь, что вы можете мне сейчас помочь. Я попытался сохранить данные в базе данных firebase в реальном времени, которая работает, но поскольку мне нужно иметь автономную постоянную работу, мне пришлось переключиться на облачный firestore, который запускается при указанной выше ошибке.
Вот код из мой node.js сервер для отправки уведомления (userID и registrationToken определены ранее):
payload = {
data: {
"title": "This is a Notification",
"body": "This is the body of the notification message."
},
};
options = {
priority: "high",
timeToLive: 7200
};
// send message to the registration token
admin.messaging().sendToDevice(registrationToken, payload, options).then(function(response) {
admin.firestore().collection("Logging").doc(userID).set({active: "true"});
}).catch(function(error) {
console.log("Error sending message:", error);
});
А вот код для получения уведомления в моем служебном файле firebase-messagins (userID определен ранее) :
self.addEventListener('notificationclick', function(event) {
event.notification.close();
const keepAlive = async() => {
firebase.firestore().collection("Logging").doc(userID).update({"open": "true"});
}
event.waitUntil(keepAlive());
});
Кто-нибудь может мне помочь, пожалуйста? У меня больше нет идей для решения моей проблемы: /