Flutter web Firebase 分析类型错误:dart.global.firebase.analytics 不是函数
Posted
技术标签:
【中文标题】Flutter web Firebase 分析类型错误:dart.global.firebase.analytics 不是函数【英文标题】:Flutter web Firebase analytics TypeError: dart.global.firebase.analytics is not a function 【发布时间】:2020-12-06 08:45:53 【问题描述】:我正在尝试在 Flutter Web 中使用 Firebase 分析并收到以下错误:
TypeError: dart.global.firebase.analytics is not a function
at Object.analytics$ [as analytics] (http://localhost:5000/packages/firebase/src/top_level.dart.lib.js:110:102)
at new firebase_analytics_web.FirebaseAnalyticsWeb.new (http://localhost:5000/packages/firebase_analytics_web/firebase_analytics_web.dart.lib.js:56:64)
at Function.registerWith
index.html 文件脚本部分如下:
<body>
<script src="https://www.gstatic.com/firebasejs/7.14.3/firebase-app.js"></script>
<script src="https://www.gstatic.com/firebasejs/7.14.3/firebase-analytics.js"></script>
<script src="https://www.gstatic.com/firebasejs/7.14.3/firebase-auth.js"></script>
<script>
var firebaseConfig =
apiKey: "*",
authDomain: "*",
databaseURL: "*",
projectId: "*",
storageBucket: "*",
messagingSenderId: "*",
appId: "*",
measurementId: "*"
;
firebase.initializeApp(firebaseConfig);
firebase.analytics();
</script>
<script src="main.dart.js" type="application/javascript"></script>
</body>
发布规范:
firebase_analytics: ^5.0.16
flutter 版本为 1.20.0 beta
【问题讨论】:
【参考方案1】:问题出在我的浏览器上。我正在使用勇敢的浏览器,它阻止了谷歌分析脚本。这就是我遇到此错误的原因。
【讨论】:
不幸的是,有很多情况会阻止 Firebase 分析(ublock 是一种非常常见的情况)。更不幸的是,firebase 分析加载失败很少是优雅的。这通常会导致我出现空白页。 嗨@Brad,你找到解决办法了吗?【参考方案2】:我认为您在 pubspec.yaml 中只包含了 firebase_analytics
。
尝试添加 Firebase Core 插件,类似这样
firebase_core: ^0.4.5
firebase_analytics: ^5.0.16
更多参考资料: https://firebase.flutter.dev/docs/analytics/overview https://github.com/FirebaseExtended/flutterfire#firebase_core
【讨论】:
以上是关于Flutter web Firebase 分析类型错误:dart.global.firebase.analytics 不是函数的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Flutter Web 的 Firebase 分析中设置用户属性?
无法使用 Flutter Web 的 image_picker 将文件上传到 Firebase 存储
使用 Firebase 托管部署我的 Flutter Web 应用程序后出现错误
Flutter + Firebase Auth:有啥方法可以在 Web 上使用 Firebase 电话身份验证重新发送短信验证码?