React 原生应用程序在收到带有错误消息的通知时崩溃"There is no completion handler with completionHandlerId:<Id>"



我正在尝试将react-native-firebase集成到一个简单的应用程序中。我按照这里提到的步骤 http://invertase.io/react-native-firebase/#/installation-ios?id=_11-initialisation。我配置了所有内容并运行了该应用程序,但是当我收到来自 fcm 应用程序的通知时,它崩溃并显示上述错误消息,并且它发生在 RNFirebaseMessaging.m 行号 406 中, 代码如下所示

RCT_EXPORT_METHOD(finishRemoteNotification: (NSString *)completionHandlerId fetchResult:(UIBackgroundFetchResult)result) {
RCTRemoteNotificationCallback completionHandler = self.notificationCallbacks[completionHandlerId];
if (!completionHandler) {
RCTLogError(@"There is no completion handler with completionHandlerId: %@", completionHandlerId);
return;
}
completionHandler(result);
[self.notificationCallbacks removeObjectForKey:completionHandlerId];
}

在调用此方法之前,我确实打印了 completionHandler 字典,它有数据,但是当此方法称为 completionHandler 时为 nil。 有没有人遇到过同样的问题?

我正在使用反应原生版本 0.47.0 和反应原生火基础 2.0.5 PS:每次收到远程通知时应用程序都会崩溃。

正如这里所写

的问题是您可能订阅了 2 个(或更多(onMessage 侦听器。

当您调用onMessage时,它将返回取消订阅方法,如果需要,您可以稍后调用该方法,然后在后记后再次订阅。

此外,他们目前正在进行消息传递/FCM大修

// subscribe
const unsubscribe = firebase.messaging().onMessage((url) => {
// ...
});
// unsubscribe
unsubscribe();

最新更新