[push]백그라운드에서 받은 알림 종료시 처리하기!

안녕하세요! 조언을 구하고자 글을 남깁니다.

상황.

  1. 백그라운드에서 알림 수신 (ok)
  2. 앱 종료
  3. 종료된 상태에서 수신된 알림을 터치!

이런경우에 어떻게 처리해야할까요?

messaging().setBackgroundMessageHandler(async (remoteMessage) => {
    console.log('Message handled in the background!', remoteMessage);
});
messaging().onNotificationOpenedApp((remoteMessage) => {
    console.log('[push] onNotificationOpenedApp', remoteMessage);
});

 messaging()
    .getInitialNotification()
    .then((remoteMessage) => {
      if (remoteMessage) {
        console.log('[push] getInitialNotification', remoteMessage);
      }
});

작동은 잘합니다. 다만 알림 수신후 백그라운드 -> 종료 상태로 바뀌게 되면 더이상 아무 리스너도 동작하지 않습니다.

해당 글에대해서 2주전쯤 확인해여 처리한적이있어 공유드려볼까합니다.

해당 글은 위의 이슈에대해서 토론한건데 솔루션만 말하자면


위에 링크에서 해당 이유에 대해 적어논걸 인용하자면

// index.js
import { AppRegistry } from 'react-native';
import messaging from '@react-native-firebase/messaging';

messaging().setBackgroundMessageHandler(async remoteMessage => {
  console.log('Message handled in the background!', remoteMessage);
});

function HeadlessCheck({ isHeadless }) {
  if (isHeadless) {
    // App has been launched in the background by iOS, ignore
    return null;
  }

  return <App />;
}

function App() {
  // Your application
}

AppRegistry.registerComponent('app', () => HeadlessCheck);

인덱스 페이지를 위처럼 처리하면 자연스럽진 않지만 동작이 됩니다. 해당 @react-native-firebase/messaging 를 최신 버전으로 올려주시고 진행해야 문제없이 작동됩니다. (도움이 되셨길…)