对于长度为 163 的 FCM 令牌,Firebase 通知未在 iOS 到达
Firebase notification not arriving on iOS for FCM token with length 163
我正在开发一个 React Native 项目,该项目使用 FCM 令牌针对配置文件注册 phone(不使用 Firebase Auth)。
对于 android,生成的 FCM 令牌长度为 152,当我使用 Firebase Admin SDK 发送通知时,我收到了通知。
但对于 iOS,生成的 FCM 令牌长度为 163。使用相同的 Java 代码发送通知时,我收到 "errorCode": "UNREGISTERED"
和 [=12= 的 404 错误]
Xcode 添加了推送通知功能。如果应用程序处于前台、后台或关闭状态,通知侦听器也可以处理通知。
我试过先卸载再安装应用。即使生成新的 FCM 令牌,结果也是相同的。另一方面,对于某些 iOS 设备(相同的 iOS 版本),生成的 FCM 令牌长度为 152,我可以向这些 iPhone 发送通知。我无法找出在某些 iOS 设备上导致此问题的原因。
Expected:
Notifications arriving on both android and iOS devices
Actual Result:
Notifications arriving on android.
Notifications arriving on iOS devices with FCM token length 152.
Notifications not arriving on iOS devices with FCM token length 163
这是我的配置:
一般:
iOS: 13.5.1
型号:iPhone XR
本机反应:0.62.2
Package.json:
“react-native-firebase”:“^5.6.0”,
播客文件:
pod 'Firebase/Core', '5.20.2'
pod 'Firebase/Messaging', '5.20.2'
Android/app build.gradle:
实施“com.google.firebase:firebase-core:16.0.8
实施“com.google.firebase:firebase-messaging:17.6.0”
成功了。对于可能遇到此问题的人,问题在于使用 NativeManager 获取 FCM 令牌。
以前我是这样获取令牌的:
nativeManager.getTokenString(CONSTANT_FCM_TOKEN, (fcmToken) => {...});
改为:
fcmToken = await firebase.messaging().getToken();
使用 firebase.messaging().getToken(),首先收到一个 FCM 令牌,然后再次收到 RNFirebaseMessaging messaging:didReceiveRegistrationToken returns 一个新的令牌。新令牌是要使用的令牌。
使用 NativeManager 时,只返回了第一个标记,而那不是正确的标记。
我正在开发一个 React Native 项目,该项目使用 FCM 令牌针对配置文件注册 phone(不使用 Firebase Auth)。
对于 android,生成的 FCM 令牌长度为 152,当我使用 Firebase Admin SDK 发送通知时,我收到了通知。
但对于 iOS,生成的 FCM 令牌长度为 163。使用相同的 Java 代码发送通知时,我收到 "errorCode": "UNREGISTERED"
和 [=12= 的 404 错误]
Xcode 添加了推送通知功能。如果应用程序处于前台、后台或关闭状态,通知侦听器也可以处理通知。
我试过先卸载再安装应用。即使生成新的 FCM 令牌,结果也是相同的。另一方面,对于某些 iOS 设备(相同的 iOS 版本),生成的 FCM 令牌长度为 152,我可以向这些 iPhone 发送通知。我无法找出在某些 iOS 设备上导致此问题的原因。
Expected: Notifications arriving on both android and iOS devices
Actual Result:
Notifications arriving on android.
Notifications arriving on iOS devices with FCM token length 152.
Notifications not arriving on iOS devices with FCM token length 163
这是我的配置:
一般:
iOS: 13.5.1
型号:iPhone XR
本机反应:0.62.2
Package.json:
“react-native-firebase”:“^5.6.0”,
播客文件:
pod 'Firebase/Core', '5.20.2'
pod 'Firebase/Messaging', '5.20.2'
Android/app build.gradle:
实施“com.google.firebase:firebase-core:16.0.8
实施“com.google.firebase:firebase-messaging:17.6.0”
成功了。对于可能遇到此问题的人,问题在于使用 NativeManager 获取 FCM 令牌。
以前我是这样获取令牌的:
nativeManager.getTokenString(CONSTANT_FCM_TOKEN, (fcmToken) => {...});
改为:
fcmToken = await firebase.messaging().getToken();
使用 firebase.messaging().getToken(),首先收到一个 FCM 令牌,然后再次收到 RNFirebaseMessaging messaging:didReceiveRegistrationToken returns 一个新的令牌。新令牌是要使用的令牌。
使用 NativeManager 时,只返回了第一个标记,而那不是正确的标记。