Перейти к содержанию

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.title
android.notification.title
webpush.notification.title
title объекта payload
apns.payload.aps.alert.body
android.notification.body
webpush.notification.body
body объекта payload
apns.payload.aps.badge
android.data.unread_count
webpush.data.unread_count
unread_count объекта payload
apns.payload.entity_type
android.data.entity_type
webpush.data.entity_type
entity_type объекта payload
apns.payload.id
android.data.id
webpush.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.

  1. Если “Получателем” шаблона (template_id) является:
  2. Представитель бизнеса — для каждого “Представителя бизнеса”, который:

    • относится к указанной “Коллаборации”;
    • имеет хотя бы один “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 токена”, для которого был выполнен запрос.