Младший полнофункциональный разработчик, я перевожу систему управления посещаемостью Google Apps Script на гибридную архитектуру:
- Фронтенд: хостинг Firebase (интерфейс часов HTML/CSS/JS)
- Бэкенд: Laravel 10 + PostgreSQL (локальный сервер для информационной панели/отчетов)
- Сотрудники регистрируют вход и выход через веб-интерфейс → Вызывает скрипт Google Apps → Записывает в Google Таблицы.
- На панели администратора отображаются данные из тех же Google Таблиц.
- Сотрудники регистрируются через приложение Firebase → Вызывают Laravel API → Записывают в PostgreSQL.
- Панель администратора (Laravel Blade) отображает данные из PostgreSQL.
Мне нужно решить, как обрабатывать связь между интерфейсом Firebase и сервером Laravel для действий по приходу и уходу.
Вариант А: прямой вызов API (текущий план)
Код: Выделить всё
///javascript
// Firebase clock.js
fetch('https://api.mycompany.com/api/public/clock', {
method: 'POST',
headers: {
'X-API-Key': CONFIG.API_KEY,
'Content-Type': 'application/json'
},
body: JSON.stringify({ id, action, lat, long })
})
Код: Выделить всё
///javascript
// Firebase writes to Realtime DB
firebase.database().ref('clock_actions').push({ id, action, timestamp })
// Laravel listens via webhook or polling
- Безопасность: Достаточно ли предоставления общедоступной конечной точки API Laravel с аутентификацией по ключу API? Или мне следует использовать OAuth/JWT?
- Надежность сети: Если локальный сервер временно недоступен, вариант А немедленно откажет. Обеспечит ли вариант Б (Firebase в качестве посредника) большую устойчивость?
- Ограничение скорости: При ~200 сотрудниках, работающих в час пик (8–9 утра), какой подход лучше обрабатывает одновременные запросы?
- Laravel 10, PHP 8.2
- PostgreSQL 15
- Обратный прокси-сервер Nginx
- Хостинг Firebase (в настоящее время нет аутентификации Firebase)
Подробнее здесь: https://stackoverflow.com/questions/798 ... -best-appr