Невозможно получить разрешение на уведомление. FirebaseError: ошибка отображается перед выбором уведомления - PullRequest
0 голосов
/ 25 апреля 2020

Невозможно получить разрешение на уведомление. FirebaseError: Messaging: необходимые разрешения не были предоставлены и отклонены. (Сообщений / разрешение по умолчанию). отображается на консоли, прежде чем я даже могу выбрать вариант из приглашения на уведомление. Обычно эта ошибка должна отображаться после выбора параметра в приглашении на уведомление, но по какой-то причине она появляется, прежде чем я могу нажать на приглашение, и, таким образом, уведомление не работает сейчас. хотя до сих пор он работал без нареканий. Этот код в настоящее время хорошо работает на chrome версии 81.0.4044.113 (Официальная сборка) (64-разрядная версия), до сих пор он хорошо работал на firefox 44.

 if (!("Notification" in window)) {
console.error("Notification isn't enabled");
} else if (Notification.permission === "granted") {
console.log("Notification is enabled");
 } else if (Notification.permission !== "denied") {

 // Retrieve an instance of Firebase Messaging so that it can handle background
  // messages.
 firebase.initializeApp(firebaseConfig);
  const messaging = firebase.messaging();
  messaging
  .requestPermission()
  .then(function () {
   // MsgElem.innerHTML = "Notification permission granted." 
    //console.log("Notification permission granted.");

   // get the token in the form of promise
   return messaging.getToken()
  })
  .then(function(token) {
    // print the token on the HTML page
    //TokenElem.innerHTML = "token is : " + token
         $.ajax({
        type:'POST',
        url:'/SaveNotificationToken',
        data:{token : token, _token: "<?php echo csrf_token(); ?>",UserId:             {{auth()->user()->id}} },
        success:function(data){
            //alert(data+"You will receive notiications from clients that viewed your service ");
            $("#msg").html(data);
        }
    }); 

   })
 .catch(function (err) {
  //ErrElem.innerHTML = ErrElem.innerHTML + "; " + err
   console.log("Unable to get permission to notify.", err);
});


}
...