You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Firebase部署的Flutter网页今日突发异常,求排查原因

Flutter Web部署Firebase后出现TrustedScriptURL模块解析错误的解决方法

问题背景

我有一个Flutter Web应用,更新以下Firebase依赖到最新版本(未修改业务代码):

firebase_storage: ^11.0.12
firebase_core: ^2.6.0
cloud_firestore: ^4.4.1
firebase_auth: ^4.2.7

本地Chrome运行正常,但部署到Firebase后出现如下异常:

VM155:2 Uncaught (in promise) TypeError: Failed to resolve module specifier 'Instance of 'TrustedScriptURL''
    at window.ff_trigger_firebase_core (<anonymous>:2:18)
    at mJ.v7 (main.dart.js:49235:19)
    at main.dart.js:52258:9
    at aJx.a (main.dart.js:6218:62)
    at aJx.$2 (main.dart.js:45146:14)
    at Object.M (main.dart.js:6204:10)
    at ag6.aqG (main.dart.js:52262:10)
    at ag6.BK (main.dart.js:52239:21)
    at ag8.$1 (main.dart.js:52332:15)
    at e9.q (main.dart.js:44287:19)

所有Firebase包均触发相同异常,回退旧版本依赖后问题依然存在,Edge浏览器也显示相同错误。

解决步骤

  • 清除Firebase Hosting缓存
    部署时添加--no-cache参数跳过缓存:

    firebase deploy --only hosting --no-cache
    

    也可以登录Firebase控制台,进入Hosting页面,找到「缓存」选项手动清除全站缓存。

  • 重新构建并部署项目

    1. 删除本地build/web目录,彻底清理旧构建产物
    2. 重新构建生产版本:
      flutter build web --release
      
    3. 重新部署到Firebase:
      firebase deploy --only hosting
      
  • 验证Firebase初始化逻辑
    确保firebase_core初始化代码正确,尤其是要在runApp前完成初始化:

    void main() async {
      WidgetsFlutterBinding.ensureInitialized();
      await Firebase.initializeApp(
        options: DefaultFirebaseOptions.currentPlatform,
      );
      runApp(const MyApp());
    }
    

    检查DefaultFirebaseOptions是否由flutterfire configure工具生成,避免手动修改导致配置过时。

  • 升级Firebase CLI
    确保使用最新版本的Firebase CLI工具,避免部署工具本身的兼容性问题:

    npm install -g firebase-tools
    

    升级后重新登录验证:

    firebase login
    
  • 强制刷新浏览器缓存
    部署完成后,在浏览器中按Ctrl+Shift+R(Windows/Linux)或Cmd+Shift+R(Mac)强制刷新页面,或者使用隐身窗口测试,排除本地浏览器缓存的影响。

内容的提问来源于stack exchange,提问作者Defarine

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 02:27:44