构建Flutter Firebase手机号验证应用时空安全依赖不兼容报错如何解决?
Flutter Firebase 空安全依赖不兼容问题解决方案
报错信息
错误:无法在健全空安全模式下运行,原因是以下依赖暂不支持空安全:
- package:firebase_core_web
- package:firebase_auth
- package:firebase
- package:firebase_core_platform_interface
- package:firebase_core
- package:plugin_platform_interface
- package:http_parser
- package:quiver
解决方案
方案1:升级依赖到支持空安全的版本(推荐)
这是最优解,可避免后续出现其他兼容问题:
- 首先删除pubspec.yaml中已声明的过时Firebase相关依赖,执行命令:
flutter pub remove firebase firebase_core firebase_auth - 注意:
package:firebase已经停止维护,无需再引入,Firebase生态现在拆分为各个独立子包按需引入即可。 - 重新在pubspec.yaml中声明最新稳定版的Firebase相关依赖,参考示例:
dependencies: flutter: sdk: flutter # 以下为支持空安全的Firebase依赖版本 firebase_core: ^2.15.0 firebase_auth: ^4.10.0 - 拉取大版本升级的兼容依赖:
flutter pub upgrade --major-versions - 清理缓存重新构建:
依次执行flutter clean、flutter pub get,之后重新运行构建命令即可。
方案2:临时禁用健全空安全模式(应急用)
如果暂时无法完成依赖升级,可以通过构建参数临时跳过空安全校验:
- 调试运行时使用命令:
flutter run --no-sound-null-safety - 打包APK时使用命令:
flutter build apk --no-sound-null-safety - 打包Web端时同样在build命令后附加上述参数即可生效。
方案3:强制覆盖间接依赖版本
如果是嵌套引入的间接依赖版本过低导致的不兼容,可以通过dependency_overrides强制指定支持空安全的版本:
- 首先执行
flutter pub deps查看全量依赖树,确认各间接依赖的最低兼容空安全版本。 - 在pubspec.yaml中添加覆盖配置,参考示例:
dependency_overrides: plugin_platform_interface: ^2.1.5 http_parser: ^4.0.2 quiver: ^3.2.1 firebase_core_platform_interface: ^4.8.0 - 执行
flutter pub get后重新构建即可。
内容的提问来源于stack exchange,提问作者Htet Myet
相关产品推荐
相关产品推荐

