# #javascript #reactjs #firebase #google-cloud-functions #firebase-cloud-messaging
Вопрос:
Я пытаюсь отправить уведомления человеку, чей токен зарегистрирован в Firestore, но ничего не происходит. Ни одной консоли.журналы отображаются при создании нового документа в firestore (в коллекции с соответствующим электронным письмом).
const admin = require('firebase-admin');
exports.sendNotifications = functions.firestore.document('123@gmail.com/{messageId}').onWrite(
async (snapshot) => {
console.log("triggered!");
const payload = {
notification: {
title: "messagetest",
body: "hey"
}
};
//Here I'd get the mail of the other user then the token.
console.log("triggered!");
firestore.collection("mailpairing").doc(auth.currentUser.email).get().then((d) => {
othermail=d.data().othermail;
});
console.log("triggered!");
firestore.collection("tokens").doc(othermail).get().then((d)=> {
othertoken=d.data().token;
});
// Send notification to token
console.log("triggered!");
await admin.messaging().sendToDevice(othertoken, payload);
console.log("triggered!");
});
Разрешения были предоставлены в обоих браузерах.
У моего сотрудника службы есть этот код:
importScripts('https://www.gstatic.com/firebasejs/8.8.0/firebase-app.js');
importScripts('https://www.gstatic.com/firebasejs/8.8.0/firebase-messaging.js');
firebase.initializeApp({
...
});
const messaging=firebase.messaging();
messaging.setBackgroundMessageHandler(function (payload) {
console.log(payload);
});
Почему не запускается функция sendNotification?
Комментарии:
1. чтобы иметь возможность уведомлять клиента о необходимости создания функции Firebase и использовать метод onCreate (), чтобы он срабатывал при создании нового документа, вот структура метода, и здесь приведено руководство по созданию функции firebase.