Я уже создаю сервер для функции Firebase, теперь я создаю уведомление о расписании для этой функции. Но эта функция вызывается, но не запускается и не выполняется. пожалуйста, помогите, как выполнить эту функцию, основанную на времени, с использованием узла JS.
var date = new Date(2018, 6, 17, 10, 50);
exports.newEvent = functions.firestore.document("Events/{event_id}").onWrite((change, context) => {
console.info('event id', context.params.event_id);
// console.info('Join_event id', context.params.event_id);
const id = context.params.event_id;
return admin.firestore().collection("Events").doc(id).get()
.then(queryResult =>{
const uid=queryResult.data().user;
console.info("User id from event",uid);
const da=queryResult.data().date;
console.info("User id from event",da);
const req = context.params.event_id;
schedule.scheduleJob(date, function(){
console.info('running every 2 minute');
console.info(id);
return admin.firestore().collection("Events").doc(id).get()
.then(queryResult =>{
const uid=queryResult.data().user;
console.info("User id from event",uid);
return admin.firestore().collection("User_data").doc(uid).get()
.then(snapshot2 =>
{
const tid3=snapshot2.data().token_id;
const useremail =snapshot2.data().user_email;
const username =snapshot2.data().user_firstname;
console.info(" User Name: ", username);
console.info(" User Email: ", useremail);
console.info(" Token_id: ",tid3);
const payload3 = {
notification:{
title:username,
body:"Event test notifiction",
icon: "default"
}
};
console.info(payload3);
const options4 = {
priority: "high",
timeToLive: 60 * 60 *24,
content_available: true,
};
return admin.messaging().sendToDevice(tid3, payload3,options4).then(result => {
return console.info('Notify when event time changed');
});
});
});
});
return true;
});
});
Я уже создаю демонстрационную функцию. его вызывают вовремя и успешно распечатывают журнал.
Спасибо





Прежде всего, облачные функции ограничены 60 секундами выполнения, после чего экземпляр функции не будет выполняться, поэтому ваше задание cron не будет запущено.
Во-вторых, вы читаете данные из firestore с помощью admin sdk в функции firestore на том же узле. У вас есть данные в переменной change. см. документацию по firebase здесь: https://firebase.google.com/docs/functions/firestore-events
Также FCM не поддерживает более позднюю доставку.
В вашем случае вам понадобится собственный сервер узлов, который прослушивает нужный вам путь.