is deprecated:FCM 直接通道已被弃用,请使用 APNs 进行下游消息处理

Jer*_*vil 5 ios swift flutter firebase-cloud-messaging

我在为 IOS 构建时收到这些消息,它成功但 IOS 通知不起作用,我收到 FCM 未注册的消息/注册令牌,所以我认为这篇文章可能与此错误有关。

在此处输入图片说明

它说我的注册令牌未注册。在查看 firebase 文档后,我看到:https : //firebase.google.com/docs/cloud-messaging/send-message#admin_sdk_error_reference

消息/注册令牌未注册:

提供的注册令牌未注册。以前有效的注册令牌可能因多种原因被取消注册,包括:

客户端应用程序从 FCM 自行取消注册客户端应用程序已自动取消注册。(如果用户卸载应用程序,或者在 iOS 上,如果 APNS 反馈服务报告 APNS 令牌无效,就会发生这种情况。)注册令牌已过期。(例如,Google 可能决定刷新注册令牌,或者 iOS 设备的 APNS 令牌可能已过期。)客户端应用程序已更新,但新版本未配置为接收消息。对于所有这些情况,请删除此注册令牌并停止使用它来发送消息。

但我觉得我已经满足了所有要求(APNS 已经配置并添加到 Firebase 控制台中)

??  /Users/builder/programs/flutter/.pub-cache/hosted/pub.dartlang.org/firebase_messaging-6.0.16/ios/Classes/FLTFirebaseMessagingPlugin.m:195:43: 'FIRMessagingRemoteMessage' is deprecated: FCM direct channel is deprecated, please use APNs for downstream message handling. [-Wdeprecated-declarations]

- (void)applicationReceivedRemoteMessage:(FIRMessagingRemoteMessage *)remoteMessage {
                                          ^


??  /Users/builder/programs/flutter/.pub-cache/hosted/pub.dartlang.org/firebase_messaging-6.0.16/ios/Classes/FLTFirebaseMessagingPlugin.m:307:24: 'FIRMessagingRemoteMessage' is deprecated: FCM direct channel is deprecated, please use APNs for downstream message handling. [-Wdeprecated-declarations]

    didReceiveMessage:(FIRMessagingRemoteMessage *)remoteMessage {
                                                      ^



??  /Users/builder/programs/flutter/.pub-cache/hosted/pub.dartlang.org/firebase_messaging-6.0.16/ios/Classes/FLTFirebaseMessagingPlugin.m:141:30: 'shouldEstablishDirectChannel' is deprecated: FCM direct channel is deprecated, please use APNs channel for downstream message delivery. [-Wdeprecated-declarations]

    [FIRMessaging messaging].shouldEstablishDirectChannel = true;
                                                      ^


??  /Users/builder/programs/flutter/.pub-cache/hosted/pub.dartlang.org/firebase_messaging-6.0.16/ios/Classes/FLTFirebaseMessagingPlugin.m:196:52: 'appData' is deprecated [-Wdeprecated-declarations]

  [self didReceiveRemoteNotification:remoteMessage.appData];
                                                               ^


??  /Users/builder/programs/flutter/.pub-cache/hosted/pub.dartlang.org/firebase_messaging-6.0.16/ios/Classes/FLTFirebaseMessagingPlugin.m:306:1: implementing deprecated method [-Wdeprecated-implementations]

- (void)messaging:(FIRMessaging *)messaging
                                                           ^


??  /Users/builder/programs/flutter/.pub-cache/hosted/pub.dartlang.org/firebase_messaging-6.0.16/ios/Classes/FLTFirebaseMessagingPlugin.m:308:63: 'appData' is deprecated [-Wdeprecated-declarations]

  [_channel invokeMethod:@"onMessage" arguments:remoteMessage.appData];
^


??  /Users/builder/programs/flutter/.pub-cache/hosted/pub.dartlang.org/firebase_messaging-6.0.16/ios/Classes/FLTFirebaseMessagingPlugin.m:195:43: 'FIRMessagingRemoteMessage' is deprecated: FCM direct channel is deprecated, please use APNs for downstream message handling. [-Wdeprecated-declarations]

- (void)applicationReceivedRemoteMessage:(FIRMessagingRemoteMessage *)remoteMessage {
                                                           ^

??  /Users/builder/programs/flutter/.pub-cache/hosted/pub.dartlang.org/firebase_messaging-6.0.16/ios/Classes/FLTFirebaseMessagingPlugin.m:307:24: 'FIRMessagingRemoteMessage' is deprecated: FCM direct channel is deprecated, please use APNs for downstream message handling. [-Wdeprecated-declarations]

    didReceiveMessage:(FIRMessagingRemoteMessage *)remoteMessage {
                                                      ^

??  /Users/builder/programs/flutter/.pub-cache/hosted/pub.dartlang.org/firebase_messaging-6.0.16/ios/Classes/FLTFirebaseMessagingPlugin.m:141:30: 'shouldEstablishDirectChannel' is deprecated: FCM direct channel is deprecated, please use APNs channel for downstream message delivery. [-Wdeprecated-declarations]

    [FIRMessaging messaging].shouldEstablishDirectChannel = true;
                                                      ^

??  /Users/builder/programs/flutter/.pub-cache/hosted/pub.dartlang.org/firebase_messaging-6.0.16/ios/Classes/FLTFirebaseMessagingPlugin.m:196:52: 'appData' is deprecated [-Wdeprecated-declarations]

  [self didReceiveRemoteNotification:remoteMessage.appData];
                                                               ^

??  /Users/builder/programs/flutter/.pub-cache/hosted/pub.dartlang.org/firebase_messaging-6.0.16/ios/Classes/FLTFirebaseMessagingPlugin.m:306:1: implementing deprecated method [-Wdeprecated-implementations]

- (void)messaging:(FIRMessaging *)messaging

??  /Users/builder/programs/flutter/.pub-cache/hosted/pub.dartlang.org/firebase_messaging-6.0.16/ios/Classes/FLTFirebaseMessagingPlugin.m:308:63: 'appData' is deprecated [-Wdeprecated-declarations]

  [_channel invokeMethod:@"onMessage" arguments:remoteMessage.appData];
^


??  /Users/builder/clone/ios/Runner/AppDelegate.swift:11:58: conditional cast from 'AppDelegate' to 'UNUserNotificationCenterDelegate' always succeeds

      UNUserNotificationCenter.current().delegate = self as? UNUserNotificationCenterDelegate
^  ~~~~
Run Code Online (Sandbox Code Playgroud)

Oma*_*att 0

设备令牌可能会随着时间的推移而发生变化,因此,如果您存储设备令牌,则需要确保每次启动应用程序时刷新令牌。