Я установил эмулятор Cloud Functions и получил развернутую функцию.Это код:
const express = require('express');
const cors = require('cors');
const sendEmail = express();
sendEmail.use(cors({origin: true}));
sendEmail.get('/:types/:message', cors(), async (req, res, next) => {
console.log(5);
const types = JSON.parse(req.params.types);
const users = arrayFromObject(await admin.database().ref('Users').once('value').then(r => r.val()).catch(e => console.log(e)));
console.log('users', users);
const recipients = [];
const mails = [];
if (types.includes('seekers')) {
const tmpUsers = users.filter(u => u.userType === null);
console.log('tmpSeekers', tmpUsers);
recipients.concat(tmpUsers);
}
if (types.includes('solvers')) {
const tmpUsers = users.filter(u => u.userType === 'person' || u.userType === 'company');
console.log('tmpSolvers', tmpUsers);
recipients.concat(tmpUsers);
}
if (types.includes('test')) {
mails.push('ironside.alexander@gmail.com', 'aleksander3wielki@gmail.com', 'tratto.biuro@gmail.com');
}
console.log('recipients', recipients);
// admin.database().ref('Users').
res.end();
});
exports.sendEmail = functions.https.onRequest(sendEmail);
Я использовал functions deploy sendEmail --trigger-http
Так что теперь к проблеме.
Я уверен, что я использую эмулятор неправильно,Что я делаю сейчас:
Используйте tsc --watch
для переноса Typescript в JavaScript
Перезапускайте функцию каждый раз, делая functions restart sendEmail
.На что я получаю:
Остановка эмулятора функций Google Cloud ...
Эмулятор функций Google Cloud STOPPED
Эмулятор функций Google Cloud RUNNING
Очистить журналы по sudo functions logs clear
Я захожу в браузер и использую предоставленную ссылку http://localhost:8010/uczsieapp/us-central1/sendEmail/[%22students%22,%22solvers%22,%22test%22]/asfasdfasd
для генерации запроса.
Я печатаю в терминале functions logs read
И я вижу, что происходит.
И это работает, конечно.Но это занимает больше времени, чем развертывание на сервере.
Что я пропускаю и / или делаю неправильно?