TypeError:无法读取未定义 Flutter 的属性“isSupported”

Posted

技术标签:

【中文标题】TypeError:无法读取未定义 Flutter 的属性“isSupported”【英文标题】:TypeError: Cannot read property 'isSupported' of undefined Flutter 【发布时间】:2021-07-26 14:42:17 【问题描述】:

这是我的 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) 在突变观察者。 (http://localhost:64821/dwds/src/injected/client.js:1269:18)

【问题讨论】:

【参考方案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 是否真的存在

【讨论】:

以上是关于TypeError:无法读取未定义 Flutter 的属性“isSupported”的主要内容,如果未能解决你的问题,请参考以下文章

Flutter Web和Firebase身份验证TypeError:无法读取未定义的属性'app'

如何使用自定义错误消息捕获“TypeError:无法读取未定义的属性(读取'0')”?

TypeError:无法读取未定义的属性(读取“名称”)

TypeError:无法读取未定义的属性“findAll”(expressjs)

TypeError:无法读取未定义的属性(读取“问题”)

TypeError:无法在 gitlab 中读取未定义的属性(读取“读取”)