在 React-Native 中获取 FCM 令牌

Posted

技术标签:

【中文标题】在 React-Native 中获取 FCM 令牌【英文标题】:Get FCM token in React-Native 【发布时间】:2019-07-22 06:08:43 【问题描述】:

在我的 React-Native 应用程序中,我必须使用 firebase 通知。 所以我创建了这个库。我是否以正确的方式做到了这一点?我如何测试它以检查它是否正常工作?我想要的是在这里返回 FCM 令牌。

/** Firebase Cloud Messaging Methods */
import firebase from 'react-native-firebase';

const getToken = async () => 
  try 
    const token = await firebase.messaging().getToken();
    if (token) return token;
   catch (error) 
    console.log(error);
  
;

const getFCMToken = async () => 
  try 
    const authorized = await firebase.messaging().hasPermission();
    const fcmToken = await getToken();

    if (authorized) return fcmToken;

    await firebase.messaging().requestPermission();
    return fcmToken;
   catch (error) 
    console.log(error);
  
;

export  getFCMToken ;

【问题讨论】:

【参考方案1】:
import messaging from '@react-native-firebase/messaging';

const checkToken = async () => 
 const fcmToken = await messaging().getToken();
 if (fcmToken) 
    console.log(fcmToken);
  


checkToken();

参考:https://rnfirebase.io/messaging/usage 和 https://github.com/invertase/react-native-firebase-docs/blob/master/docs/messaging/device-token.md

【讨论】:

【参考方案2】:

检查您是否正确实施了通知。你必须去

Firebase Console

点击“云消息”,然后点击“新通知” 发送测试通知。 如果您收到通知,那么您的代码就可以了。

顺便说一句,您应该使用“主题”实现而不是“令牌”实现。这将使发送通知的过程变得非常容易和易于管理。

【讨论】:

【参考方案3】:

使用 3rd 方库获取 FCM 通知对于调试来说总是很痛苦,所以我总是建议使用 react-native bridge 对此类 API 使用 Native 调用。因为 react-native 库只应在 androidios 中使用常见功能时使用。 这是更新的

【讨论】:

以上是关于在 React-Native 中获取 FCM 令牌的主要内容,如果未能解决你的问题,请参考以下文章

Firebase(FCM)如何获取令牌

在Android中获取FCM消息令牌的正确方法是啥?

无法获取设备的推送令牌。检查您的 FCM 配置是不是有效

无法获取 FCM 注册令牌

FCM 保持令牌同步

为啥不获取 Android Firebase FCM 注册令牌?