리액트 네이티브에서 디바이스 토큰 받아오는 시나리오

네이버 push notification 서비스를 이용하고 있어 부득이하게 리액트 네이티브에서 디바이스 토큰을 얻어오게 되었습니다.

react native cli기반으로 여러 코드를 조합시켜 다음과 같은 코드를 짰는데 실행되기도 전에 'native module cannot be null’이라는 오류만 나오며 실행이 되지 않더라고요

코드에 무슨 문제가 있는 걸까요? 어떻게 해야 RN에서 디바이스 토큰을 받아올 수 있는 걸까요?

import firebase from 'react-native-firebase';

export default class App extends Component {

  constructor() {

    super(props);

    if (Platform.OS === 'ios') {

      PushNotificationIOS.addEventLister('register', (token) => {

        Alert.alert('PushNotificationIOS', JSON.stringify(token), [{ text: 'copy', onPress: () => Clipboard.setString(JSON.stringify(token)) }]);

      });

      PushNotificationIOS.requestPermissions();

    }

    else if (Platform.OS === 'android') {

      this.requestPermission();

    }

  }

  async requestPermission() {

    try {

      await firebase.messaging().requestPermission();

      this.getToken();

    } catch (error) {

      alert('permission rejected');

    }

  }

  async getToken() {

    fcmToken = await firebase.messaging().getToken();

    if (fcmToken) {

      Alert.alert('fcmToken', JSON.stringify(fcmToken), [{ text: 'copy', onPress: () => Clipboard.setString(JSON.stringify(fcmToken)) }]);

    }

  }

'native module cannot be null’이라는 메세지는 네이티브 모듈이 제대로 설치되지 않은 경우 발생합니다. react-native-firebase 에 나와있는대로 android 혹은 ios 설정을 정확히 하고 앱을 빌드 했는지 확인해보세요~