Flutter Web运行报错TypeError: dart.global.firebase.analytics is not a function
错误根因
该TypeError: dart.global.firebase.analytics is not a function报错本质是Flutter Web运行时无法读取到全局的Firebase Analytics JS对象,移动端的Firebase配置仅适配原生Android/iOS平台,Web端需要补充专属配置才能正常运行,配置缺失就会导致页面加载后空白。
修复步骤
- 打开项目
web目录下的index.html文件,在<body>标签闭合前引入对应版本的Firebase核心SDK与Analytics SDK,注意:SDK大版本需要与你pubspec.yaml中引入的firebase_analytics插件大版本保持一致,避免出现兼容性问题,引入示例如下:
<!-- Firebase核心SDK --> <script src="https://www.gstatic.com/firebasejs/9.23.0/firebase-app.js"></script> <!-- Firebase Analytics SDK --> <script src="https://www.gstatic.com/firebasejs/9.23.0/firebase-analytics.js"></script>
- 引入SDK后,在同一
index.html中补充Firebase Web端初始化代码,填写你Firebase项目对应的Web配置参数,完成后主动初始化Analytics实例,示例如下:
<script> const firebaseConfig = { apiKey: "你的Firebase项目apiKey", authDomain: "你的Firebase项目authDomain", projectId: "你的Firebase项目projectId", storageBucket: "你的Firebase项目storageBucket", messagingSenderId: "你的Firebase项目messagingSenderId", appId: "你的Firebase项目appId", measurementId: "你的Firebase项目measurementId" }; // 初始化Firebase firebase.initializeApp(firebaseConfig); // 初始化Analytics firebase.analytics(); </script>
- 配置完成后执行
flutter clean清理项目缓存,再执行flutter pub get重新拉取依赖,之后重新启动Chrome端调试即可正常加载页面。 - 如果你不需要在Web端使用Analytics功能,也可以在Dart代码中判断运行平台,仅在移动端初始化Analytics实例,Web端跳过相关逻辑,同样可以解决该报错。
内容的提问来源于stack exchange,提问作者KPurcell10
相关产品推荐
相关产品推荐

