Только что реализовал FCM нотификацию, когда приложение закрыто. Два дня возился с тем, чтобы поведение foreground соответствовало поведению background.
Прикол в том, что у Firebase FirebaseMessagingService метод onMessageReceived не отрабатывает когда приложение в фоне.
И тогда единственный способ на сервере в дополнительных параметрах отправлять click_action = "SOMETHING"
Затем перехватывать сообщения соответствующим Activity в манифесте через intent-filter:
<action android:name="SOMETHING" />
<category android:name="android.intent.category.DEFAULT" />
А потом при открытии первого экрана надо перепроверять:
if (context.getIntent() != null && context.getIntent().hasExtra("click_action"))
И если так, то открывать соответствующий экран, в котором уже и анализировать параметры из extras