【问题标题】:not receiving push notification from firebase But with Pusher app没有收到来自 firebase 的推送通知但使用 Pusher 应用程序
【发布时间】:2019-07-05 02:56:15
【问题描述】:

我没有收到来自 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,spring boot)

4_ 我已在 Capabilities 中启用推送通知

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

一些提示:

我们是一个像服务器端(JAVA)这样的团队。网页、安卓和ios

此推送通知在 android 上有效,但在 ios 上无效。

我认为我做错了事。

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

【问题讨论】:

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


    【解决方案1】:

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

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

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

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

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

    在正文中添加此有效负载以触发通知。这将触发您的通知服务扩展。

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

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

    【讨论】:

    • 我不明白数字 3.1 。你的意思是 FcmToken 生成它的应用程序委托?必须与服务器密钥相同?
    • 不,如果你进入 firebase 控制台 -> 项目设置 -> 云消息传递,你可以找到像这样的 ServerKey AAAA-hY_3kw:APA91bEtwFaf3h4xKi6QT1UyfumYhpb2hAWQFhfx2jfHWHiByYf_3yHhvTYIIwF9NV2ZHSiW-HlqydlTlDkURHWR7ms1uWaicbq-6DSk3wxPr5UTMhRjWAiQvN0tZsjHIuxxxxxxxxxx,该密钥必须用于从服务器推送通知.
    • 我现在正在接收通知,这些通知是从 Fire Base 控制台手动发送的。但我需要修改通知内容并使用通知服务。但不运行我的修改方法
    • 你的意思是你的通知服务没有被调用?
    • 是的。我收到通知。但我需要修改内容。我正在使用通知服务扩展。但没有被调用。我现在手动从 Firebase 面板发送通知。但这必须是从服务器自动发送的
    猜你喜欢
    • 2023-04-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-21
    • 1970-01-01
    • 2020-05-22
    • 2019-09-26
    相关资源
    最近更新 更多