【问题标题】:FCM Notifications not receiving iOSFCM 通知未收到 iOS
【发布时间】:2019-08-17 20:24:41
【问题描述】:

我正在使用 FCM 获取远程推送通知。

因此,在从以下回调中获取第一个 FCM 令牌时,我能够触发通知并正确接收它们。

func messaging(_ messaging: Messaging, didReceiveRegistrationToken fcmToken: String)

重新启动应用程序后,我得到了一个新的 FCM 令牌。新令牌不会触发任何通知。

根据文档,我遵循的先决条件: https://firebase.google.com/docs/cloud-messaging/ios/client

使用 FirebaseMessaging (3.3.0)

【问题讨论】:

  • 您是否更新了存储在后端服务器中的令牌?
  • 是的,但我正在使用 Firebase 云消息控制台进行测试。
  • 您是否从控制台收到任何错误?
  • 很遗憾没有收到任何错误。

标签: ios firebase firebase-cloud-messaging


【解决方案1】:

所以我找到了解决方案,每次从回调中获取 FCM 新令牌后。

func messaging(_ messaging: Messaging, didReceiveRegistrationToken fcmToken: String)

我们必须重新注册远程推送通知。

if #available(iOS 10.0, *) {
        let center = UNUserNotificationCenter.current()
        center.requestAuthorization(options: [.badge, .alert, .sound]) {
            (granted, error) in
            if granted {
                DispatchQueue.main.async {
                    UIApplication.shared.registerForRemoteNotifications()
                }
            } else {
                //print("APNS Registration failed")
                //print("Error: \(String(describing: error?.localizedDescription))")
            }
        }
    } else {
        let type: UIUserNotificationType = [UIUserNotificationType.badge, UIUserNotificationType.alert, UIUserNotificationType.sound]
        let setting = UIUserNotificationSettings(types: type, categories: nil)
        UIApplication.shared.registerUserNotificationSettings(setting)
        UIApplication.shared.registerForRemoteNotifications()
    }

FirebaseMessaging 将使用设备令牌重新配置新的 FCM 令牌。

注意:不可以,需要明确设置设备令牌。由于 FirebaseMessaging 使用的是方法调配,它会自动从委托方法中检索它。

func application(_ application: UIApplication,
                 didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data)

【讨论】:

  • Firebase 消息传递文档没有说明每次生成新的 fcmToken 时都必须重新注册
猜你喜欢
  • 1970-01-01
  • 2021-10-30
  • 2021-02-11
  • 2017-02-25
  • 1970-01-01
  • 2021-06-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多