Firebase 63中的Firebase推送通知不起作用

时间:2018-10-29 08:22:46

标签: firebase firefox push-notification firebase-cloud-messaging service-worker

我正在尝试实施FCM推送通知。我的Firefox版本是63.0。

下面是我的代码,

var config = {
                apiKey: "${model.apiKey}",
                authDomain: "${model.authDomain}",
                databaseURL: "${model.databaseURL}",
                projectId: "${model.projectId}",
                storageBucket: "${model.storageBucket}",
                messagingSenderId: "${model.messagingSenderId}"
            };

            firebase.initializeApp(config)
            const messaging = firebase.messaging();
            messaging.requestPermission().then(function () {
            console.log("Notification permission granted.");
           // get the token in the form of promise
            return messaging.getToken()
            }).then(function(token) {
                 $('#devicekey').val(token);
            }).catch(function (err) {
        console.log("Unable to get permission to notify.", err);
   });  
  

已授予通知权限

显示在控制台中。但是显示错误

  

FirebaseError:消息传递:此浏览器不支持API的   需要使用Firebase SDK。 (邮件/浏览器不支持)。

我无法获得令牌。为什么会这样?请注意,我的应用程序是通过“ http”运行的。

1 个答案:

答案 0 :(得分:2)

firebase docs

  

FCM SDK仅在通过HTTPS服务的页面中受支持。这是由于使用了服务工作者,仅在HTTPS站点上可用。需要提供者? Firebase托管是一种在您自己的域上获取免费HTTPS托管的简便方法。

在Firefox 63中,当我尝试通过http打开具有Firebase初始化的页面时,看到了类似您的消息。 在这种情况下,我的Chrome会写更具体的警告:

  

[不推荐使用]从不安全的来源可能不再使用Notification API。您应该考虑将应用程序切换到安全来源,例如HTTPS。

当我通过https在Firefox 60中工作时,我也看到了类似您的消息。原因是“服务人员” disabled on Firefox 60 ESR(但可以重新启用)。此消息在Firefox中太笼统了。