Вход через Google в панель вакансий MaViAl — кабинет работодателя и соискателя
Подключение Firebase и настройка входа через Google
Короткий сценарий: создайте проект в Firebase, включите Authentication → Sign-in method → Google,
создайте Firestore и Storage, затем вставьте конфиг и нажмите «Подключить».
После подключения доступен вход через Google и работа кабинета работодателя/соискателя.
Ссылка на консоль Firebase сохранена без изменений:
console.firebase.google.com
Пример правил безопасности Firestore/Storage для вакансий и откликов
rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
match /users/{uid} {
allow read: if request.auth != null && request.auth.uid == uid;
allow write: if request.auth != null && request.auth.uid == uid;
}
match /jobs/{id} {
allow read: if true; // публичные вакансии
// Работодатель может править только свои вакансии
allow create, update: if request.auth != null && request.resource.data.employerId == request.auth.uid;
allow delete: if request.auth != null && resource.data.employerId == request.auth.uid;
}
match /applications/{id} {
// читать: работодатель (владелец вакансии) или соискатель (владелец отклика)
allow read: if request.auth != null && (request.auth.uid == resource.data.workerId || request.auth.uid == resource.data.employerId);
// создавать: только соискатель (сам за себя)
allow create: if request.auth != null && request.resource.data.workerId == request.auth.uid;
// обновлять статус: работодатель или соискатель (напр. отозвать)
allow update: if request.auth != null && (request.auth.uid == resource.data.workerId || request.auth.uid == resource.data.employerId);
}
}
}
service firebase.storage {
match /b/{bucket}/o {
match /cvs/{uid}/{allPaths=**} {
allow write: if request.auth != null && request.auth.uid == uid; // загрузка своего резюме
allow read: if request.auth != null && (request.auth.uid == uid || request.auth.token.admin == true); // читать своё или админ
}
}
}
Панель работодателя — управление вакансиями и откликами
Новая вакансия
Заполните форму, чтобы опубликовать вакансию. Рекомендуется указывать город, условия, формат договора и разрешения (A1/LIMOSA и т. п.).
Мои вакансии
Здесь вы меняете статус, переименовываете вакансию, удаляете её или копируете ссылку для отправки кандидатам.
Отклики на мои вакансии
Все отклики кандидатов в одном месте: сообщение, резюме и статус sent review accepted rejected.
Экспорт вакансий
Открытые вакансии можно выгрузить в jobs.json для публичной витрины или интеграций.
Загрузите скачанный jobs.json в корень сайта → витрина marketplace.html автоматически подхватит его как источник.
Уведомления о новых откликах
Тестовые уведомления (Telegram / EmailJS) сохраняются локально. Для продакшена корректнее вынести отправку в Cloud Functions и не хранить ключи на клиенте.
Панель соискателя — профиль, резюме и отклики
Мой профиль
Заполните профиль: телефон, география, навыки, языки и короткое описание опыта. Это повышает качество отклика и ускоряет рассмотрение.
Мои отклики
История откликов показывает, куда вы откликались и какой статус у каждого отклика. Это помогает вести поиск работы системно.
Открытые вакансии
Используйте фильтры по стране и специальности, чтобы быстро найти подходящее предложение и откликнуться.
FAQ — вход через Google, вакансии, отклики и резюме
FAQ подбирается “анти-шаблонным” модулем: разные формулировки и разная логика подачи, чтобы страница не выглядела как копия шаблона.