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页面,找到「缓存」选项手动清除全站缓存。
重新构建并部署项目
- 删除本地
build/web目录,彻底清理旧构建产物 - 重新构建生产版本:
flutter build web --release - 重新部署到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
相关产品推荐
相关产品推荐

