在 React Native 中获取 Firebase Cloud Messaging 令牌

Getting Firebase Cloud Messaging token in React Native

我是 React Native 的新手,我正在尝试创建一个具有后台通知的应用程序。在做了一些研究之后,我觉得最好的方法是使用 firebase 云消息传递。

在学习了许多不同的教程之后,我编写了以下代码。

export default class App extends React.Component { 
  requestUserPermission = async () => {
    const authStatus = await messaging().requestPermission();
    const enabled =
      authStatus === messaging.AuthorizationStatus.AUTHORIZED ||
      authStatus === messaging.AuthorizationStatus.PROVISIONAL;
      if (enabled) {
        getFcmToken();
        console.log('Authorization status:', authStatus);
      }
    };

    getFcmToken = async () => {
      const fcmToken = await messaging().getToken();
      if (fcmToken) {
          console.log(fcmToken);
          console.log("Your Firebase Token is:", fcmToken);
      } else {
          console.log("Failed", "No Token Recived");
      }
    };

    async componentDidMount() {
      await this.requestUserPermission();

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

当我在我的 iOS 设备上 运行 我的应用程序时,我可以在终端中看到我收到以下错误。

ReferenceError: Can't find variable: getFcmToken

当我尝试发送测试消息时,它似乎没有出现。

我的问题是:我的代码是不是写错了,或者我做错了什么?

在实际使用之前声明 getFcmToken

    // declare getFcmToken first
    const getFcmToken = async () => {
      const fcmToken = await messaging().getToken();
      if (fcmToken) {
          console.log(fcmToken);
          console.log("Your Firebase Token is:", fcmToken);
      } else {
          console.log("Failed", "No Token Recived");
      }
    };

    // then use it
    const authStatus = await messaging().requestPermission();
    const enabled =
      authStatus === messaging.AuthorizationStatus.AUTHORIZED ||
      authStatus === messaging.AuthorizationStatus.PROVISIONAL;
      if (enabled) {
        getFcmToken();
        console.log('Authorization status:', authStatus);
      }
    };