
Firebase Functions — это бессерверная платформа, которая позволяет разработчикам писать и развертывать серверный код, не беспокоясь об управлении инфраструктурой. Его можно использовать для выполнения таких задач, как отправка электронных писем, обработка платежей и запуск моделей машинного обучения.
Express – это популярная веб-платформа для создания веб-приложений с использованием Node.js. Он разработан, чтобы упростить создание веб-приложений и API-интерфейсов, предоставляя набор функций и утилит, которые упрощают общие задачи веб-разработки.
Шаг 1: Создайте новый проект
Первым шагом является инициализация нового проекта. Создайте новую пустую папку проекта:
$ mkdir express-firebase-function
Заходим в созданную папку:
$ cd express-firebase-function
Инициализируйте проект, создав package.json с пакетом npm:
$ npm init -y

Шаг 2. Подключите Firebase
Установите пакеты Firebase, чтобы подключить Firebase и сгенерировать функции Firebase:
$ npm install firebase firebase-tools
Войдите в Firebase в консоли:
$ npx firebase login

Шаг 3. Создайте функцию Firebase
Создайте шаблон функции Firebase с помощью интерфейса командной строки Firebase:
$ npx firebase init functions

Шаг 4. Запустите и протестируйте функцию Firebase
Протестируйте API-интерфейс функции Firebase, вызвав его в первый раз:
$ cd functions $ npm install $ npm run serve

Шаг 5: Добавьте экспресс
Установите Express.js в свой локальный проект, выполнив команду из каталога функций:
$ npm install express --save

Откройте файл /function/index.js, затем импортируйте и инициализируйте Express.js:
const functions = require('firebase-functions');
const express = require('express');
const app = express();

В пути / добавьте функцию к этому пути при инициализации функции:
app.get('/', (req, res) => {
const date = new Date();
const hours = (date.getHours() % 12) + 1; // London is UTC + 1hr;
res.send(`
<!doctype html>
<head>
<title>Time</title>
<link rel="stylesheet" href="/style.css">
<script src="/script.js"></script>
</head>
<body>
<p>In London, the clock strikes:
<span id="bongs">${'BONG '.repeat(hours)}</span></p>
<button onClick="refresh(this)">Refresh</button>
</body>
</html>`);
});


Попробуйте добавить еще одну конечную точку для возврата счетчика BONG в качестве API в разделе /api:
app.get('/api', (req, res) => {
const date = new Date();
const hours = (date.getHours() % 12) + 1; // London is UTC + 1hr;
res.json({bongs: 'BONG '.repeat(hours)});
});


Экспортируйте приложение Express.js как функцию HTTPS:
exports.app = functions.https.onRequest(app);
Шаг 6: Измените конфигурацию для Express
В вашем файле firebase.json перепишите конфигурацию, чтобы разрешить Express.js обслуживать различные подпути, которые мы настроили:
{
"hosting": {
// ...
// Add the "rewrites" attribute within "hosting"
"rewrites": [ {
"source": "**",
"function": "app"
} ]
}
}

Если вам понравилась эта история и вы хотели бы поддержать меня (и тысячи других писателей)

пожалуйста, подпишитесь и подпишитесь, чтобы получать все обновления и стратегии.
Спасибо!