Для создания заданий cron в RDB Firebase используйте сторонний сервис, такой как cron-jobs.org
СОЗДАНИЕ КЛЮЧА
Комучтобы все было безопасно, вы должны сгенерировать безопасный ключ, теперь он называется YourSelfGeneratedButSecureKey
.
. Вы можете создать его в своем терминале, набрав: node -e "console.log(require('crypto').randomBytes(20).toString('hex'))"
CREATING CRON JOB
Создайте новое задание cron, которое поразит вашу конечную точку облачной функции, и прикрепите созданный ключ в виде URL-запроса следующим образом:
https://{projectSpecific}.cloudfunctions.net/{nameOfFunction}?key={YourSelfGeneratedButSecureKey}
Установите ключ в свой env, используя следующую команду в своем терминале: firebase functions:config:set cron.key="{YourSelfGeneratedButSecureKey}"
ФУНКЦИЯ ОБЛАКА
Чтобы обеспечить максимальную безопасность, вы можете установитьsecure-compare
, набрав npm install --save secure-compare
;
Затем в вашей облачной функции:
const secureCompare = require('secure-compare');
exports.{nameOfFunction} = functions.https.onRequest((req, res) => {
const { key } = req.query;
if (!secureCompare(key, functions.config().cron.key)) {
console.log('Key in request and in env do NOT match');
res.status(403).send('Security key does not match.');
return null;
}
// DO REPETITIVE STUFF SECURELY
});