使用Firebase无法接收自定义推送通知

时间:2019-01-11 10:10:46

标签: ios swift firebase notifications

我已经使用Firebase实现了带有自定义通知的应用。我可以使用来自Pusher,Pushtry的设备令牌接收自定义通知,但是如果我使用邮递员的FCM ID发送相同的有效载荷,则不会收到通知。

我也尝试了其他有效载荷,但只是收到默认通知,有时只对某些有效载荷发出声音,但没有获得自定义通知。

我正在使用像这样的有效载荷来进行推送和推送: (收到适当的通知)

{ 
"aps":{ 
"alert":"dasdas",
"badge":1,
"sound":"default",
"category":"CustomSamplePush",
"mutable-content":"1"
},
"urlImageString":"https://res.cloudinary.com/demo/image/upload/sample.jpg"
}

相同的有效负载不适用于Firebase

是否有适当的有效负载,是否需要对我的ios代码进行更改?

提前谢谢。

2 个答案:

答案 0 :(得分:1)

您的有效载荷应为:

{
    "to": "APA91bHun4MxP5egoKMwt2KZFBaFUH-1RYqx...",
    "notification": {
        "body": "dasdas",
        "title": "Portugal vs. Denmark",
        "icon": "myicon"
    },
    "data": {
        "Nick": "Mario",
        "Room": "PortugalVSDenmark"
    }
}

即使Firebase返回成功的请求,因为转发的APNS有效负载不正确,将所有数据置于aps下也不会触发iOS中的任何通知。除了正确的方法之外,还应遵循GCM或FCM有效负载建议,即既将通知消息用于通知,又将数据用于自定义键/值对。

当FCM将数据发送到APNS时,它将其转换为APNs有效负载。它在aps标签中设置了通知值,即

{
    "aps" : {
        "alert" : {
            "title" : "Portugal vs. Denmark",
            "body" : "Portugal vs. Denmark",
        }
    },
    "Nick" : "Mario",
    "Room" : "PortugalVSDenmark"
}

答案 1 :(得分:0)

对于使用firebase的自定义通知,有效负载应如下所示。

{
    "to": "FCM ID",
    "content_available":true,
    "mutable_content": true,
    "data": {
        "message": "Offer!",
        "urlImageString":"https://res.cloudinary.com/demo/image/upload/sample.jpg",
    },
    "notification": {
        "body": "Update Your App New Version is available",
        "sound": "default",
        "click_action": "Your app category from notification plist"
    }
}