【问题标题】:is deprecated: FCM direct channel is deprecated, please use APNs for downstream message handlind不推荐使用:不推荐使用 FCM 直接通道,请使用 APNs 进行下游消息处理
【发布时间】:2020-10-12 23:46:05
【问题描述】:

我在为 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
^  ~~~~

【问题讨论】:

  • 直接通道已被弃用,但在 Firebase 6 中仍然有效。它与您的问题无关。

标签: ios swift flutter firebase-cloud-messaging


【解决方案1】:

设备令牌会随着时间而改变,因此如果您存储设备令牌,则需要确保每次启动应用时您都refresh the token

【讨论】:

    猜你喜欢
    • 2020-09-16
    • 1970-01-01
    • 2020-06-15
    • 2019-02-28
    • 1970-01-01
    • 1970-01-01
    • 2016-04-22
    • 2012-11-14
    • 2021-08-01
    相关资源
    最近更新 更多