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 电话身份验证重新发送短信验证码?

如何在 Firebase 分析中跟踪 Flutter 屏幕?

Firebase 和 Flutter 是不是支持在 Web 上一次性读取?