В запросе отсутствует ключ аутентификации (токен FCM). Пожалуйста, обратитесь к разделу «Аутентификация» документации FCM - PullRequest
0 голосов
/ 29 сентября 2019

Я отправляю уведомления Firebase из моего приложения nativescript с помощью углового модуля httppost, иногда он отправляет уведомления, иногда возвращает ошибку, что в запросе отсутствует ключ аутентификации (токен FCM). Пожалуйста, обратитесь к разделу «Аутентификация» документации FCM

, используя почтальон, если приложение находится на переднем плане, оно не получает уведомление, но ответ все еще успешен, но если приложение находится в фоновом режиме, или я нажимаю кнопку «Домой» на Android,получает уведомление вот мельком почтальон

sendtoken(id, detail) {
        console.log("????????????????????????????????????????????????");
        console.log(JSON.stringify(detail.firebase_token));
        console.log(JSON.stringify(this.DataService.activeJob));
        console.log("\n\n" + detail.JobID);
        var job = this.DataService.activeJob.filter(f => detail.JobID === f.jobID)[0];

        // + detail.amount + "\n Origin : " + job.jobOrigin + "\nDestination : " + job.jobDestination

        var data = {

            notification: {
                "title": "JOB",
                "text": "Your Firm was allocated a job of amount :",
                "sound": "default"
            },
            "priority": "High",
            "to": detail.firebase_token
        };

        // alert(JSON.stringify(data));
        var ServerSettings =
            {

                serverpath: "https://fcm.googleapis.com/fcm/send"
            };

        this.headers.append("Authorization", "key=AAAA9wyBPKg:APA91bGI6dOOM42iTJNqO47xMC9QIkLHf738Sn1iVk0gbkZDND1fuP9zBW1A38DlhupDdvlsAZCJu1iNACjbVvtdZQd3ePXnq1xctwYQ3PCErchmyYMM4UvmWjeeNjn2X1IL9mgy5ioT");
        this.headers.append("Content-Type", "application/json");
        this.options.headers = this.headers;
        //this.setHeaders();
        console.log("\n\nSending to Server for Update :\n\n" + data);
        let url = ServerSettings.serverpath;

        return this.httpmodule.post(url,data, this.options);

    }

с почтальоном

 {
        "notification": {
                "title": "JOB",
                "text": "Your Firm was allocated 5",
                "sound": "default"
            },
            "priority": "High",
            "to": "dwu1TEW5sPM:APA91bEppyye2NCq5IAfnjJg95eTsnsPf4Vn3U8CLgvUjJnY7uAVs4ASZiu1RCuFKf7uzXYojAGzKQD8cflKRGvpiqhEymbhK-DB-LQi8MogWIyyIR_xOm64GIpbviWrDuVZt8Td6xZ2"

        }

ответ с почтальоном

{
    "multicast_id": 6341518491186981658,
    "success": 1,
    "failure": 0,
    "canonical_ids": 0,
    "results": [
        {
            "message_id": "0:1569773536386430%0a6c29b00a6c29b0"
        }
    ]
}

1 Ответ

0 голосов
/ 29 сентября 2019

Если вы всегда хотите отображать уведомления, когда приложение находится на переднем плане без отправки дополнительных параметров / данных при отправке push-уведомления, вам нужно установить для параметра showNotificationsWhenInForeground значение true:

firebase.init({
  showNotificationsWhenInForeground: true,
});

Ссылка из документации по плагину .

Редактировать:

Используя Angular при обновлении заголовков, вы должны заменить существующий экземпляр новым, возвращеннымappend метод.

this.headers = this.headers.append("Authorization", "key=AAAA9wyBPKg:APA91bGI6dOOM42iTJNqO47xMC9QIkLHf738Sn1iVk0gbkZDND1fuP9zBW1A38DlhupDdvlsAZCJu1iNACjbVvtdZQd3ePXnq1xctwYQ3PCErchmyYMM4UvmWjeeNjn2X1IL9mgy5ioT").append("Content-Type", "application/json");
this.options.headers = this.headers;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...