更新 Swift 中已弃用的 Firebase 函数

Posted

技术标签:

【中文标题】更新 Swift 中已弃用的 Firebase 函数【英文标题】:Update deprecated Firebase functions in Swift 【发布时间】:2020-10-12 16:01:36 【问题描述】:

我有这个代码来推送应用通知。 它运作良好,但我收到此警告: 'MessagingRemoteMessage' 已弃用:FCM 直接通道已弃用,请使用 APNs 进行下游消息处理。 而这个 'appData' 已弃用

我在 Google 上进行了研究,但没有找到任何解决此问题的方法。

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool 
        // Override point for customization after application launch.
        if #available(ios 10.0, *) 
            // For iOS 10 display notification (sent via APNS)
            UNUserNotificationCenter.current().delegate = self
            let authOptions: UNAuthorizationOptions = [.alert, .badge, .sound]
            UNUserNotificationCenter.current().requestAuthorization(
            options: authOptions,
            completionHandler: _, _ in )
            // For iOS 10 data message (sent via FCM
            Messaging.messaging().delegate = self
         else 
            let settings: UIUserNotificationSettings = UIUserNotificationSettings(types: [.alert, .badge, .sound], categories: nil)
              application.registerUserNotificationSettings(settings)
        
         
        application.registerForRemoteNotifications()
         
        FirebaseApp.configure()
        
        return true
    
    
    // The callback to handle data message received via FCM for devices running iOS 10 or above.
    func applicationReceivedRemoteMessage(_ remoteMessage: MessagingRemoteMessage) 
        print(remoteMessage.appData)
    

【问题讨论】:

***.com/questions/62079361/… @Rob 我已经看到了这个答案,但不知道它对我有什么帮助 【参考方案1】:

问题是您是否只是发送显示/警报通知和后台通知?或者您是否使用直接渠道发送一些隐藏的数据消息以进行实时更新?

MessagingRemoteMessage 是通过直接通道发送和处理的数据消息对象。如果您只想推送通知,并且您似乎也没有在上面的代码中启用直接通道。您可以使用 Apple 的 API UNUserNotificationCenterDelegate 来处理警报消息或 AppDelegate application:didReceiveRemoteNotification:fetchCompletionHandler: 来处理后台通知。

【讨论】:

以上是关于更新 Swift 中已弃用的 Firebase 函数的主要内容,如果未能解决你的问题,请参考以下文章

优先级和背景在 ios 8 中已弃用

Firebase 发布请求 Swift/SwiftUI 已弃用

图像中已弃用的 Notification 类的替代方法是啥?

似乎无法关闭 php 中已弃用的错误

Magnolia 的 AccessDefinition 类中已弃用的角色

init(colorLiteralRed:,green:,blue:,alpha:) 在 Swift 4 中已弃用