FCM - 推送通知仅适用于控制台而非邮递员

时间:2018-03-21 09:29:33

标签: firebase firebase-cloud-messaging nativescript

我的应用程序是用NativeScript开发的。对于FCM,我使用nativescript-plugin-firebase

每当我尝试使用FCM控制台时,都会收到推送通知。但是,当我尝试发帖时,我从未收到推送通知。

URL : POST : https://fcm.googleapis.com/fcm/send
Headers : Authorization = key="******", Content-Type=application/json

数据:

{
    "data": {
        "title": "RAJA RAJA",
        "message": "another test",
        "name": "Muthukumar ME"
    },
    "to" : "**************************************"
}

回应:

{
    "multicast_id": 5806593945960213086,
    "success": 1,
    "failure": 0,
    "canonical_ids": 0,
    "results": [
        {
            "message_id": "0:1521623661699559%161a06bff9fd7ecd"
        }
    ]
}

任何人都知道我错过了什么,即使我得到了成功回复,当我尝试邮递员时推送通知也没有到来。

4 个答案:

答案 0 :(得分:4)

{ 
    "to" : "********",
    "priority": "high",
    "notification": {
        "title": "Title",
        "body" : "First Notification",
        "text": "Text"
    }
}

答案 1 :(得分:1)

我正在通过“主题”发送通知,例如:-

{
 "to" : "/topics/XXXX",

 "notification" : {
     "body" : "First Notification",
     "title": "Collapsing A",
     "click_action":"DisplayTestActivity"
 },
 "data" : {
     "body" : "First Notification",
     "title": "Collapsing A",
     "key_1" : "Data for key one",
   "click_action":"DisplayTestActivity"
 }
}

如果您发送这样的通知,但无法通过邮递员获得通知,则

“在获得通知之前,请确保以下行应成为您的启动活动或执行首页的目的”

FirebaseMessaging.Instance.SubscribeToTopic("XXXX");
if(!GetString(Resource.String.google_app_id).Equals("XXXXXXXXXXXXXXXXXXXXX"))  throw new System.Exception("Invalid Json file");
Task.Run(() =>
{

    var instanceId = FirebaseInstanceId.Instance;
    instanceId.DeleteInstanceId();
    Android.Util.Log.Debug("TAG", "{0} {1}", instanceId.Token, instanceId.GetToken(GetString(Resource.String.gcm_defaultSenderId), Firebase.Messaging.FirebaseMessaging.InstanceIdScope));

});

*上面的代码是c#,因此请使用您的编程语言。 谢谢

答案 2 :(得分:0)

使用HTTP协议和POSTMAN发送数据消息

您必须从Firebase控制台>“项目设置”>“云消息传递”中复制“旧版服务器密钥”

注意:Firebase已将我们的服务器密钥升级到新版本。您可以继续使用旧版服务器密钥,但是建议您升级到最新版本。

选择POST。输入请求网址为https://fcm.googleapis.com/fcm/send     添加标头授权:key =或授权:key =,内容类型:application / json。

使用POSTMAN进行设置  现在,选择“主体”>“原始”>“ JSON(应用程序/ json)”,然后添加以下代码:

{
 "to" : "YOUR_FCM_TOKEN_WILL_BE_HERE",
 "collapse_key" : "type_a",
 "notification" : {
     "body" : "First Notification",
     "title": "Collapsing A"
 },
 "data" : {
     "body" : "First Notification",
     "title": "Collapsing A",
     "key_1" : "Data for key one",
     "key_2" : "Hellowww"
 }
}

您可以推送通用通知(带有通知有效负载)或自定义通知(带有通知和数据有效负载),然后点击发送。

{
 "to" : "YOUR_FCM_TOKEN_WILL_BE_HERE",
 "collapse_key" : "type_a",
 "data" : {
     "body" : "First Notification",
     "title": "Collapsing A",
     "key_1" : "Data for key one",
     "key_2" : "Hellowww"
 }
}

请注意,仅当有效负载中只有数据(无通知)节点时,才会触发“自定义”通知。因此,您需要将正文和标题移到数据节点。

请记住:如果您想将通知发送给具有相应firebase_instance_id的多个设备,请使用registration_ids而不是节点。

答案 3 :(得分:0)

在移动设备中打开您的应用程序,然后将其连接到PC...。

然后打开chrome,然后将此 chrome:// inspect /#devices 粘贴到远程目标点击检查Demo1中,然后您会看到{{ 1}}在“设备注册...”下。...复制此ID,并将其粘贴到registrationId Demo2中的“至”:“ registrationId”之后 希望对您有帮助!!!