Я использую fcm в приложении чата. В приложении чата есть разные каналы, на которые пользователь может подписаться. Если пользователь подписан, он будет получать уведомления fcm о новых сообщениях в канале, даже если приложение открыто. Уведомления рассылаются по теме, которая называется как идентификатор канала.
Теперь, конечно, я не хочу показывать пользователю уведомление, если у него есть открытый канал, где появляется новое сообщение (потому что он все равно его видит).
Как я могу узнать, должен ли я показать уведомление или нет?
Я обрабатываю уведомление в функции обратного вызова onMessage. Моя идея состояла в том, чтобы выяснить, какой экран видит пользователь или какой маршрут он использует, но, насколько я исследовал, теперь есть способ использовать навигатор для определения текущего маршрута, на котором находится пользователь. Моя единственная другая идея состояла бы в том, чтобы каким-то образом сохранить текущий канал, который пользователь видит в глобальном состоянии, и затем проверить его в обратном вызове onMessage, прежде чем показывать уведомление, но это кажется очень хакерским ...