首页 > 解决方案 > 单设备推送通知(FCM 注册令牌)不起作用

问题描述

我正在使用 react-native-firebase 和 firebase-messaging 来实现推送通知。

虽然我可以向所有人发送推送通知,但我无法将它们发送给个人。据我所知,我需要的只是 FCM 注册令牌,我按照文档检索

firebase.messaging().getToken()
  .then(fcmToken => {
    if (fcmToken) {
      console.log("fcm token", fcmToken);
    } else {
      console.log("fcm token", "null");
    } 
  });

我收到的令牌是一个合理的令牌,但是当我将该令牌从日志复制到 Firebase 控制台并尝试将其发送到单个设备时,什么也没有收到。(如果我推送到用户群,所有安装了该应用程序的设备都会收到它)。

由于我无法测试 iOS,这在 iOS 上可能也可能不是问题。

在我的 build.gradle 文件中,firebase 相关库包括如下:

compile(project(':react-native-firebase')) {
    transitive = false
}

implementation "com.google.android.gms:play-services-base:15.0.1"
implementation "com.google.firebase:firebase-core:16.0.1"
implementation 'com.google.firebase:firebase-auth:16.0.2'
implementation "com.google.firebase:firebase-messaging:17.1.0"

在 MainApplication.java 文件中,我将它们添加到 ReactPackages 列表中。

new RNGoogleSigninPackage(),
new RNFirebasePackage(),
new RNFirebaseMessagingPackage(),
new RNFirebaseAuthPackage() 

我的 AndroidManifest 没有任何与 Firebase 相关的更改,因为我发现推送通知即使没有它们也能正常工作。(在尝试实现推送通知时,我注意到所有手机都在接收它们,除了我正在积极使用的手机 - 所以我回滚了代码。)

编辑:我设法收到一个设备通知。没有任何变化,它突然只工作了一次。现在它不再起作用了。

标签: firebasereact-nativefirebase-cloud-messagingreact-native-androidreact-native-firebase

解决方案


推荐阅读