Firebase FCM (Javascript): ошибка при разрешении запроса (статус ошибки = 500) - PullRequest
5 голосов
/ 10 октября 2019

Я новичок в Firebase Cloud Messaging, и мне нужно реализовать уведомления в моем веб-приложении. Если браузер запрашивает уведомление в первый раз, ошибка не возникает, и токен успешно получен. Но если я удаляю уведомление из параметра браузера (я использую Chrome) и снова запрашиваю разрешение, оно показывает мне ошибку в консоли.

DELETE https://fcmregistrations.googleapis.com/v1/projects/teak-perigee-*****/registrations/dcVW8MdcapIy5CrSqGutkj:APA91bFoslZEsjgIk16CUfol*****************

FirebaseError: Messaging: A problem occured while unsubscribing the user from FCM: FirebaseError: Messaging: A problem occured while unsubscribing the user from FCM: Internal error encountered. (messaging/token-unsubscribe-failed). (messaging/token-unsubscribe-failed).

На самом деле токен извлекается даже при возникновении этой ошибки. но в этой ситуации я обрабатываю новый токен в блоке catch обещания. Это мой код при получении разрешения:

askForPermissioToReceiveNotifications = () => {

    const messaging = firebase.messaging();

   Notification.requestPermission().then(async (permission) => {

    if(permission == 'granted') {

        try {

            const token = await messaging.getToken();

            if(token) {

                console.log(token);
                return token;
            }

            else {
                console.log('No Instance ID token available. Request permission to generate one.');
            }
        }

        catch(error) {

            console.log('An error occurred while retrieving token. ', error);


            //BUT THE NEW TOKEN SUCCESSFULY FETCHED
            const token = await messaging.getToken();

            if(token) {

                console.log(token);
                return token;
            }

            else {
                console.log('No Instance ID token available. Request permission to generate one.');
            }
        }
    }

})
.catch(error => console.log(error));

}

Я не знаю, пропустил ли я что-то, и надеюсь, что смогу найти решение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...