没有收到来自Firebase的推送通知,但使用Pusher应用

时间:2019-02-11 15:10:10

标签: java ios swift firebase firebase-cloud-messaging

我没有收到来自Firebase的任何通知,但是当我使用Pusher应用进行测试时,我收到了通知。

这些是我完成的步骤。如果我做错了事,请帮助我。

1_添加如下所示的NotificationService。

class NotificationService: UNNotificationServiceExtension {

var contentHandler: ((UNNotificationContent) -> Void)?
var bestAttemptContent: UNMutableNotificationContent?

override func didReceive(_ request: UNNotificationRequest, withContentHandler contentHandler: @escaping (UNNotificationContent) -> Void) {
    self.contentHandler = contentHandler
    bestAttemptContent = (request.content.mutableCopy() as? UNMutableNotificationContent)

    if let bestAttemptContent = bestAttemptContent {
        // Modify the notification content here...




        bestAttemptContent.title = "hello"
        bestAttemptContent.body = "this is test"


        contentHandler(bestAttemptContent)
    }
}

}

2 _将NotificationCenter委托设置为自己在应用程序委托中

        Messaging.messaging().delegate=self
        UNUserNotificationCenter.current().delegate = self

3_用于发送通知的设备令牌(我将其存储到服务器)

   func messaging(_ messaging: Messaging, didReceiveRegistrationToken fcmToken: String) {
    print("Firebase registration token: \(fcmToken)")

    let dataDict:[String: String] = ["token": fcmToken]
    NotificationCenter.default.post(name: Notification.Name("FCMToken"), object: nil, userInfo: dataDict)
    // TODO: If necessary send token to application server.
    // Note: This callback is fired at each app startup and whenever a new token is generated.
}

我将此FCMToken发送到服务器端(java,春季启动)

4_我已在“功能”中启用了推送通知

5_我已经在Firebase控制台的项目设置的云消息传递中添加了.p12文件,但是我对此有很大疑问!我应该使用服务器的帐户登录到Firebase吗?或为自己做一个账户?因为我为自己创造了一个。

一些提示:

我们是一个像服务器端(JAVA)这样的团队。网络,Android和iOS

此推送通知在android上有效,但在ios上不可用。

我认为我做错事了。

感谢您阅读本主题并帮助我。

1 个答案:

答案 0 :(得分:1)

这是交叉检查您的问题的步骤,

  1. 必须启用通知功能。
  2. 您在Apple会员中心创建的证书应启用推送 通知 enter image description here
  3. 在Firebase控制台中,转到设置->项目设置->云消息传递->检查服务器密钥
    1. 此密钥和您提供给服务器团队的密钥应该相同
    2. 检查是否添加了APNs身份验证密钥或APNs证书。
    3. 如果使用的是APNs证书,则该证书应与在会员中心的appId中生成的证书相同 enter image description here
  4. 从xcode控制台获取fcm令牌->转到firebase控制台->增长->云消息传递->新通知 ->并尝试在设备上进行测试。如果收到通知,客户端(设备)没有问题。如果不是,服务器端必须仔细检查服务器密钥。
  5. 将googleServiceInfo.plist添加到您的项目中。在您的应用信息中添加反向键。
  6. Appdelegate中,配置您的Firebase FirebaseApp.configure()

更新,根据您在评论中的问题,正在更新此问题。 要使用NotificationService扩展,您的通知必须在通知有效负载中包含mutable-content属性。使用fcm api可以做到这一点。将它们放在邮递员中,

https://fcm.googleapis.com/fcm/send

在标题中,添加服务器密钥(您可以从Firebase控制台获取它)

enter image description here

在主体中的

将此有效负载添加到火灾通知中。这将触发您的Notification Service Extension。

{
    "notification": {
        "title": "1",
        "body": "",
        "click_action": "",
        "icon": "",
        "mutable_content": true,
        "content_available": true
    },
    "registration_ids":["add your fcm token"],
    "data": {}
}

enter image description here

根据教程:     https://code.tutsplus.com/tutorials/ios-10-notification-service-extensions--cms-27550

enter image description here