类型错误:无法读取未定义 Flutter 的属性“isSupported”

时间:2021-05-04 08:52:44

标签: flutter firebase-cloud-messaging flutter-web

这是我的 index.html 文件代码

<!DOCTYPE html>
<html>
<head>
  <!--
    If you are serving your web app in a path other than the root, change the
    href value below to reflect the base path you are serving from.

    The path provided below has to start and end with a slash "/" in order for
    it to work correctly.

    Fore more details:
    * https://developer.mozilla.org/en-US/docs/Web/HTML/Element/base
  -->
  <base href="/">

  <meta charset="UTF-8">
  <meta content="IE=Edge" http-equiv="X-UA-Compatible">
  <meta name="description" content="A new Flutter project.">

  <!-- iOS meta tags & icons -->
  <meta name="apple-mobile-web-app-capable" content="yes">
  <meta name="apple-mobile-web-app-status-bar-style" content="black">
  <meta name="apple-mobile-web-app-title" content="order_system">
  <link rel="apple-touch-icon" href="icons/Icon-192.png">

  <!-- Favicon -->
  <link rel="icon" type="image/png" href="favicon.png"/>

  <title>order_system</title>
  <link rel="manifest" href="manifest.json">
  <link rel="stylesheet" type="text/css" href="splash/style.css">
</head>
<body>
  <!-- This script installs service_worker.js to provide PWA functionality to
       application. For more information, see:
       https://developers.google.com/web/fundamentals/primers/service-workers -->

  <script src="https://www.gstatic.com/firebasejs/8.4.1/firebase-app.js"></script>
  <script src="https://www.gstatic.com/firebasejs/8.2.5/fire-messaging.js"></script>
  <script src="main.dart.js" type="application/javascript"></script>
  <script>
    if ("serviceWorker" in navigator) {
      window.addEventListener("load", function () {
        navigator.serviceWorker.register("/flutter_service_worker.js");
        navigator.serviceWorker.register("/firebase-messaging-sw.js");
      });
    }
  </script>
  <script>
      var firebaseConfig = {
        apiKey: "AIzaSyBcp4nLrdafciehE8r6ajHkwMhON9cLjJs",
        authDomain: "order-system-623aa.firebaseapp.com",
        databaseURL: "https://order-system-623aa.firebaseio.com",
        projectId: "order-system-623aa",
        storageBucket: "order-system-623aa.appspot.com",
        messagingSenderId: "34260933778",
        appId: "1:34260933778:web:4ea612571d33e7b27c5a4b",
        measurementId: "G-C798KHHTXK",
      };

      // Initialize Firebase
      firebase.initializeApp(firebaseConfig);
    </script>
  <!-- The core Firebase JS SDK is always required and must be listed first -->
  <script src="/__/firebase/8.4.2/firebase-app.js"></script>

  <!-- TODO: Add SDKs for Firebase products that you want to use
       https://firebase.google.com/docs/web/setup#available-libraries -->
  <script src="/__/firebase/8.4.2/firebase-analytics.js"></script>

  <!-- Initialize Firebase -->
  <script src="/__/firebase/init.js"></script>
  <script>
    if ('serviceWorker' in navigator) {
      window.addEventListener('flutter-first-frame', function () {
        navigator.serviceWorker.register('flutter_service_worker.js');
      });
    }
  </script>
  <picture id="splash">
    <source srcset="splash/img/light-1x.png 1x, splash/img/light-2x.png 2x, splash/img/light-3x.png 3x" media="(prefers-color-scheme: light) or (prefers-color-scheme: no-preference)">
    <source srcset="splash/img/dark-1x.png 1x, splash/img/dark-2x.png 2x, splash/img/dark-3x.png 3x" media="(prefers-color-scheme: dark)">
    <img class="center" src="splash/img/light-1x.png" />
  </picture>
  <script src="main.dart.js" type="application/javascript"></script>
</body>
</html>

这是我的控制台错误

在新的 firebase_messaging_web.FirebaseMessagingWeb.new (http://localhost:64821/packages/firebase_messaging_web/firebase_messaging_web.dart.lib.js:171:51) 在 Function.registerWith (http://localhost:64821/packages/firebase_messaging_web/firebase_messaging_web.dart.lib.js:62:73) 在 Object.registerPlugins (http://localhost:64821/packages/order_system/generated_plugin_registrant.dart.lib.js:32:49) 在主要 (http://localhost:64821/web_entrypoint.dart.lib.js:44:35) 在 main.next() 在 runBody (http://localhost:64821/dart_sdk.js:39051:34) 在 Object._async [as async] (http://localhost:64821/dart_sdk.js:39082:7) 在 main$ (http://localhost:64821/web_entrypoint.dart.lib.js:43:18) 在 http://localhost:64821/main_module.bootstrap.js:19:10 在 Array.forEach() 在 window.$dartRunMain (http://localhost:64821/main_module.bootstrap.js:18:32) 在 :1:8 在 Object.runMain (http://localhost:64821/dwds/src/injected/client.js:8656:21) 在 http://localhost:64821/dwds/src/injected/client.js:22068:19 在 _wrapJsFunctionForAsync_closure.$protected (http://localhost:64821/dwds/src/injected/client.js:3830:15) 在 _wrapJsFunctionForAsync_closure.call$2 (http://localhost:64821/dwds/src/injected/client.js:10905:12) 在 Object._asyncStartSync (http://localhost:64821/dwds/src/injected/client.js:3794:20) 在 main__closure1.$call$body$main__closure (http://localhost:64821/dwds/src/injected/client.js:22080:16) 在 main__closure1.call$1 (http://localhost:64821/dwds/src/injected/client.js:22007:19) 在 StaticClosure._rootRunUnary [as call$2$5] (http://localhost:64821/dwds/src/injected/client.js:4153:16) 在 _CustomZone.runUnary$2$2 (http://localhost:64821/dwds/src/injected/client.js:12136:39) 在 _CustomZone.runUnaryGuarded$1$2 (http://localhost:64821/dwds/src/injected/client.js:12068:14) 在 _ControllerSubscription._sendData$1 (http://localhost:64821/dwds/src/injected/client.js:11697:19) 在 _DelayedData.perform$1 (http://localhost:64821/dwds/src/injected/client.js:11849:59) 在 _PendingEvents_schedule_closure.call$0 (http://localhost:64821/dwds/src/injected/client.js:11898:14) 在 Object._microtaskLoop (http://localhost:64821/dwds/src/injected/client.js:3990:24) 在 StaticClosure._startMicrotaskLoop (http://localhost:64821/dwds/src/injected/client.js:3996:11) 在 _AsyncRun__initializeScheduleImmediate_internalCallback.call$1 (http://localhost:64821/dwds/src/injected/client.js:10774:9) 在 invokeClosure (http://localhost:64821/dwds/src/injected/client.js:1250:26) 在 MutationObserver。 (http://localhost:64821/dwds/src/injected/client.js:1269:18)

1 个答案:

答案 0 :(得分:1)

尝试更换:

<script src="https://www.gstatic.com/firebasejs/8.2.5/fire-messaging.js"></script>

与:

<script src="https://www.gstatic.com/firebasejs/8.4.1/firebase-messaging.js"></script>

我不确定 fire-messaging.js 是否真的存在