簡體   English   中英

在 React Native 中獲取 Firebase Cloud Messaging 令牌

[英]Getting Firebase Cloud Messaging token in 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 設備上運行我的應用程序時,我可以在終端中看到出現以下錯誤。

參考錯誤:找不到變量: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);
      }
    };

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM