【问题标题】:Firebase messaging importScripts is not definedFirebase 消息传递 importScripts 未定义
【发布时间】:2020-01-17 15:05:05
【问题描述】:

我在Firebase平台上写了一个WEB应用程序

我有一个文件 "firebase-messaging-sw.js",当我从 home.html 页面访问该文件时,我得到一个错误:

importScripts 不是

文件 “firebase-messaging-sw.js” 位于根级别。

home.html:

<html>
<head>
    <meta charset="utf-8" />
    <title></title>
    <link rel="shortcut icon" href="img/favicon.png"/>
    <meta name="keywords" content="" />

    <link rel="stylesheet" href="css/reset.css" type="text/css" />
    <link rel="stylesheet" href="css/home.css" type="text/css" media="screen and (min-width:901px)" />
    <link rel="stylesheet" href="css/mhome.css" type="text/css" media="screen and (max-width:900px)" />

</head>

<body>
    <header>
        ...
    </header>

    <div class="function">
        ...
    </div>

    <footer>
        ...
    </footer>

    <!-- The core Firebase JS SDK is always required and must be listed first -->
    <script src="https://www.gstatic.com/firebasejs/6.3.3/firebase-app.js"></script>
    <script src="https://www.gstatic.com/firebasejs/6.3.3/firebase-auth.js"></script>
    <script src="https://www.gstatic.com/firebasejs/6.3.3/firebase-firestore.js"></script>
    <script src="https://www.gstatic.com/firebasejs/6.3.3/firebase-storage.js"></script>
    <script src="https://www.gstatic.com/firebasejs/6.3.3/firebase-messaging.js"></script>
    <script src="https://www.gstatic.com/firebasejs/6.3.3/firebase-performance.js"></script>

    <script src="javaScript/initFirebase.js"></script>
    <script src="javaScript/homeFirebase.js"></script> 
    <script src="javaScript/initHomePage.js"></script> 
    <script src="javaScript/latlon-geohash.js"></script> 

    <script src="firebase-messaging-sw.js"></script>

</body>

firebase-messaging-sw.js:

importScripts('https://www.gstatic.com/firebasejs/6.3.3/firebase-app.js');
importScripts('https://www.gstatic.com/firebasejs/6.3.3/firebase-messaging.js');

firebase.initializeApp({
    'messagingSenderId': '123456654321'
});

帮助修复错误!谢谢!

【问题讨论】:

    标签: javascript html firebase firebase-cloud-messaging


    【解决方案1】:

    firebase-messaging-sw.js 是服务工作者 JavaScript 文件。

    所以你不应该使用 &lt;script src="firebase-messaging-sw.js"&gt;&lt;/script&gt; 加载 JavaScript 文件。

    删除&lt;script src="firebase-messaging-sw.js"&gt;&lt;/script&gt; 并尝试以下代码。

        <script>
          if ('serviceWorker' in navigator) {
            window.addEventListener('load', () => {
              navigator.serviceWorker.register('/firebase-messaging-sw.js');
            });
          }
        </script>
    

    https://developers.google.com/web/fundamentals/primers/service-workers/#register_a_service_worker

    【讨论】:

    • 恭喜!你能接受我的回答吗?您对如何发送 FCM 通知有任何疑问吗?你能把它发布到堆栈溢出中吗?
    • aahhh 这件事花了我一整天的时间,谢谢你拯救了我剩下的时间
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-12
    • 2020-01-08
    • 2019-01-09
    • 1970-01-01
    • 2016-10-09
    相关资源
    最近更新 更多