Если FCM токен сохраняется для другого пользователя, push-уведомления могут уходить не тому человеку. Это уже не просто баг удобства, а риск приватности.

Пользователь может получить чужой статус заказа, сообщение, напоминание или внутреннее уведомление. Такие ошибки нужно закрывать аккуратно и с проверкой данных.

Коротко: нужно правильно связать устройство, пользователя, токен, вход и выход из аккаунта.

Почему возникает проблема

Токен может переиспользоваться после logout, сохраняться до завершения авторизации, не отвязываться при смене пользователя или обновляться параллельно с устаревшей сессией.

Что проверить сначала

  • когда приложение отправляет FCM-токен на сервер
  • по какому user_id он сохраняется
  • удаляется ли связь при logout
  • есть ли уникальность device-token
  • нет ли гонки запросов при смене аккаунта

Как я решаю такую задачу

Я строю безопасную модель device-token-user и проверяю сценарии входа, выхода и смены аккаунта.

  • смотрю таблицы токенов и устройств
  • проверяю API сохранения токена
  • исправляю привязку к текущему пользователю
  • добавляю отвязку при logout
  • тестирую смену аккаунта на одном устройстве

Что подготовить для оценки

  • ссылку на страницу, панель или систему
  • что именно должно происходить в норме
  • пример ошибки или скриншот
  • когда проблема появилась
  • тестовый доступ без лишних прав, если он нужен

Каким должен быть результат

Push должен уходить только актуальному владельцу устройства, а старые связи должны удаляться или деактивироваться.

Чего лучше не делать

Не рассылайте уведомления по всем старым токенам без проверки владельца. Это может раскрыть чужую информацию.

FAQ

Можно ли исправить без полной переделки?

Чаще всего да. Я сначала ищу точную причину сбоя и предлагаю минимальную правку, которая не ломает рабочую часть проекта.

Что нужно прислать для оценки?

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

Как понять, что задача решена?

Должен быть повторяемый тест: до правки ошибка воспроизводится, после правки сценарий проходит стабильно и результат можно проверить без догадок.

Нужна похожая задача?

Напишите в Telegram @rabotator_support или оставьте заявку на сайте. Пришлите ссылку, пример ошибки и коротко опишите, как должно работать. Я посмотрю задачу, предложу план и скажу, какие доступы понадобятся.

Итог

FCM-токены нужно хранить как чувствительную связь между устройством и пользователем, а не как случайную строку для рассылки.