Существует два типа сообщений, которые вы можете отправлять с помощью FCM: уведомления и сообщения с данными.
Если ваше приложение активно, в код приложения поступают уведомления, которые могут решить, что с ним делать. Когда приложение не активно, система автоматически отображает уведомления. Нет способа подавить это поведение.
Сообщения с данными всегда доставляются в код вашего приложения, который может решить, что с ними делать.
Поэтому, если вы хотите, чтобы пользователь подавлял отображение сообщений, вам нужно будет только отправлять сообщения с данными, а затем отображать их из кода вашего приложения.
Обратите внимание, что в качестве альтернативы вы можете найти способ не доставлять сообщения пользователю, который отключил уведомления. Как именно это сделать, зависит от вашей реализации. Например: если вы отправляете напрямую токены ID экземпляра FCM, вы можете пропустить токены пользователей, которые отключили push-уведомления. А если вы используете подписку на тему для отправки сообщений, вы можете создать тему, на которую пользователи подписываются, чтобы отключить уведомления, а затем создать условия, исключающие доставку в эту тему .