01.1.13 Firebase¶
| Версия | 1.1.0 |
|---|---|
| Количество листов |
Оглавление¶
История изменений¶
| №1 | Дата: 12.12.2025 | Автор: Ляшук Андрей | RFC: RPL-1876 | Версия: 1.0.0 |
|---|---|---|---|---|
| №2 | Дата: 08.09.26 | Автор: Ляшук Андрей | RFC: RPL-2897 | Версия: 1.1.0 |
| Добавлено: • "1.1 Push-уведомления" • "1_1 Переменные окружения" • "01.1.13_1.1_1 Процедура отправки push-уведомления". Изменено: В "1. Firebase" добавлено назначение сервиса — отправка push-уведомлений. |
1. Firebase¶
Сервис Firebase используется для:
- Аутентификации пользователей с использованием:
- Google.
- Отправки push-уведомлений.
Интеграция с сервисом осуществляется на основе документации сервиса - Firebase.
1_1 Переменные окружения
| Переменная окружения | Описание |
|---|---|
FIREBASE_CONFIG_PATH |
Путь к файлу ключа сервисного аккаунта Firebase. Используется для аутентификации запросов к Firebase. |
VITE_FIREBASE_API_KEY |
Ключ веб-приложения Firebase |
VITE_FIREBASE_MESSAGING_SENDER_ID |
Идентификатор отправителя Firebase Cloud Messaging |
VITE_FIREBASE_APP_ID |
Идентификатор веб-приложения Firebase |
VITE_FIREBASE_MEASUREMENT_ID |
Идентификатор потока данных Firebase |
VITE_FIREBASE_VAPID_KEY |
Публичный ключ веб-конфигурации Firebase Cloud Messaging. Используется для получения «FCM токена» в браузере |
1.1 Push-уведомления¶
Push-уведомления могут получать пользователи, использующие клиентскую часть сервиса как установленное PWA, и пользователи «Мобильного приложения».
Регистрация и удаление «FCM токена» выполняются согласно «02_2.3_18 Процедура регистрации FCM токена» и «02_2.3_19 Процедура удаления FCM токена».
1.1_1 Структура Push-уведомления
| Параметр | Описание | Значение |
|---|---|---|
payload |
Объект, который будет передан в push-уведомлении | Объект. Структура и состав параметров приведены в “1.1_1.1”. |
1.1_1.1 Параметры объекта payload
| Параметр | Описание | Значение |
|---|---|---|
title |
Заголовок | |
body |
Тело | |
unread_count |
Количество непрочитанных уведомлений | |
entity_type |
Тип сущности, к которому относится уведомление | “campaign”; “collaboration”. |
id |
Идентификатор сущности, к которому относится уведомление |
1.1_2 Шаблоны push-уведомлений
| Шаблон | Параметры |
|---|---|
| New message | ID - 1; Название шаблона - New message; Получатель - Инфлюэнсер; Название - “New message from {location.title}”; Тело - “{collaboration_messages.message}”. |
| New message from creator | ID - 2; Название шаблона - New message from creator; Получатель - Представитель бизнеса; Название - “New message from {influencer_full_name}”; Тело - “{collaboration_messages.message}”. |
| Message from Rippla admin in collab chat for Influencer | ID - 3; Название шаблона - Message from Rippla admin in collab chat for Influencer; Получатель - Инфлюэнсер; Название - “Rippla Team messaged in chat with {location.title}”; Тело - “{collaboration_messages.message}”. |
| Message from Rippla admin in collab chat for business | ID - 4; Название шаблона - Message from Rippla admin in collab chat for business; Получатель - Представитель бизнеса; Название - “Rippla Team messaged in chat with {users.full_name}”; Тело - “{collaboration_messages.message}”. |
| New collaboration application | ID - 5; Название шаблона - New collaboration application; Получатель - Представитель бизнеса; Название - “New application received”; Тело - “{users.full_name} has applied to collaborate with you. Review their profile now.”. |
| Selected for collaboration | ID - 6; Название шаблона - Selected for collaboration; Получатель - Инфлюэнсер; Название - “You've been selected! 🎉”; Тело - “{location.title} wants to collaborate with you. Check the details and confirm.”. |
| Collaboration dates confirmed | ID - 7; Название шаблона - Collaboration dates confirmed; Получатель - Инфлюэнсер; Название - “Dates confirmed for {location.title}”; Тело - “Your collaboration is scheduled for {collaborations.collab_dates. Возможные форматы: одна дата (считается диапазоном из одного дня, дата начала и дата окончания совпадают) — 14 Dec 2025; одна дата со временем — 14 Dec 2025, 10:30; диапазон дат — 14 Dec 2025 – 14 Jan 2026; диапазон дат со временем — 14 Dec 2025 – 14 Jan 2026, 10:30.}. Mark your calendar!”. |
| Application withdrawn by creator | ID - 8; Название шаблона - Application withdrawn by creator; Получатель - Представитель бизнеса; Название - “Application withdrawn”; Тело - “{users.full_name} has withdrawn their application. Don't worry — more creators are discovering your offer.”. |
| Application not selected | ID - 9; Название шаблона - Application not selected; Получатель - Инфлюэнсер; Название - “Update on your application”; Тело - “{location.title} has gone with another creator this time. New offers matching your profile are waiting for you.”. |
| New offer available | ID - 10; Название шаблона - New offer available; Получатель - Инфлюэнсер; Название - “New offer near you ✨”; Тело - “{location.title} is looking for creators. Check it out before spots fill up.”. |
| Collaboration completed — upload content | ID - 11; Название шаблона - Collaboration completed — upload content; Получатель - Инфлюэнсер; Название - “Time to upload your content”; Тело - “Your collaboration with {location.title} is marked as completed. Please, upload your content to wrap things up.”. |
| New content uploaded | ID - 12; Название шаблона - New content uploaded; Получатель - Представитель бизнеса; Название - “New content uploaded”; Тело - “{users.full_name} has uploaded content from your collaboration. Tap to review.”. |
| It's time to upload the results of the collaboration | ID - 13; Название шаблона - It's time to upload the results of the collaboration; Получатель - Инфлюэнсер; Название - “Time to upload your results”; Тело - “Share your stats so venues can see your great work”. |
FR_01.1.13_1.1_1 Параметры “Название” и “Тело” являются переводимыми.
FR_01.1.13_1.1_2 Push-уведомление должно отправляться согласно “Предпочитаемой локали” пользователя, который является его получателем.
FR_01.1.13_1.1_3 Если у “Сообщения коллаборации”, для которого отправляется push-уведомление по шаблону 1, 2, 3 или 4, отсутствует “Текст сообщения” и имеется хотя бы один “Файл сообщения коллаборации”, “Тело” push-уведомления формируется как переводимый текст:
| Локаль | Значение |
|---|---|
| en | 📎 Attachment |
| es | 📎 Archivo adjunto |
| pt | 📎 Anexo |
| de | 📎 Anhang |
1.1_3 Тело запроса “Отправка push-уведомления”
Тело запроса формируется серверной частью единым для всех платформ. Значения параметров объекта payload подставляются в объекты apns, android и webpush:
{
"message": {
"token": "{fcm_token}",
"apns": {
"payload": {
"aps": {
"alert": { "title": "{title}", "body": "{body}" },
"badge": "{unread_count}",
"sound": "default"
},
"entity_type": "{entity_type}",
"id": "{id}"
}
},
"android": {
"notification": { "title": "{title}", "body": "{body}" },
"data": { "entity_type": "{entity_type}", "id": "{id}", "unread_count": "{unread_count}" }
},
"webpush": {
"notification": { "title": "{title}", "body": "{body}" },
"data": { "entity_type": "{entity_type}", "id": "{id}", "unread_count": "{unread_count}" }
}
}
}
| Параметр | Значение |
|---|---|
token |
«FCM токен», на который отправляется push-уведомление |
apns |
Объект уведомления для платформы iOS |
android |
Объект уведомления для платформы Android |
webpush |
Объект уведомления для браузера и PWA |
apns.payload.aps.alert.titleandroid.notification.titlewebpush.notification.title |
title объекта payload |
apns.payload.aps.alert.bodyandroid.notification.bodywebpush.notification.body |
body объекта payload |
apns.payload.aps.badgeandroid.data.unread_countwebpush.data.unread_count |
unread_count объекта payload |
apns.payload.entity_typeandroid.data.entity_typewebpush.data.entity_type |
entity_type объекта payload |
apns.payload.idandroid.data.idwebpush.data.id |
id объекта payload |
apns.payload.aps.sound |
default |
FR_01.1.13_1.1_4 Push-уведомление отправляется одним запросом, содержащим объекты apns, android и webpush. Объект, который применяется, определяется платформой, которой принадлежит «FCM токен», указанный в параметре token.
01.1.13_1.1_1 Процедура отправки push-уведомления¶
Инициация с параметрами: template_id, collaboration_id, campaign_id, user_id, collaboration_message_id.
- Если “Получателем” шаблона (
template_id) является: -
Представитель бизнеса — для каждого “Представителя бизнеса”, который:
- относится к указанной “Коллаборации”;
- имеет хотя бы один “FCM токен”;
- имеет “Статус активности” push “Настройки уведомления”
true—
выполняется отправка push-уведомления согласно 1.1_3 со значениями параметров объекта
payload: -title,body— согласно шаблону 1.1_2; -unread_count— количество непрочитанных сообщений “Представителя бизнеса” (за исключением определённых согласно FR_07_3.3.2_4.1); -entity_type—collaboration; -id—collaboration_id. 2. Инфлюэнсер — для “Инфлюэнсера”, который: - имеет хотя бы один “FCM токен”; - имеет “Статус активности” push “Настройки уведомления”true—выполняется отправка push-уведомления согласно 1.1_3 со значениями параметров объекта
payload: -title,body— согласно шаблону 1.1_2; -unread_count— количество непрочитанных сообщений “Инфлюэнсера”; -entity_typeиid: - Если был указанcampaign_id—entity_type—campaign,id—campaign_id; - Если не был указанcampaign_id—entity_type—collaboration,id—collaboration_id. 2. Отправка push-уведомления выполняется для каждого “FCM токена”, который относится к получателю. 3. Если на запрос “Отправка push-уведомления” возвращается ошибка, которая указывает на недействительность “FCM токена”, выполняется удаление “FCM токена”, для которого был выполнен запрос.