Я новичок в 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));
}
Я не знаю, пропустил ли я что-то, и надеюсь, что смогу найти решение.