Flutter Web项目中firebase_core与firebase_core_web包有什么区别?
firebase_core 与 firebase_core_web 的区别
- 定位差异
firebase_core是Firebase官方为Flutter全平台提供的核心公共依赖包,是所有Firebase相关Flutter插件的基础依赖,本身封装了平台适配抽象层,支持Android、iOS、Web、桌面端全平台使用,只要你在Flutter项目中用到Firebase相关服务,都必须先引入该依赖。firebase_core_web是firebase_core针对Web平台的专属实现包,基于Firebase官方JS SDK封装,仅适用于Flutter Web平台,用来对接Web端的Firebase底层能力。 - 引入规则差异
常规开发场景下你不需要手动引入firebase_core_web,当你在项目中引入firebase_core后编译Web版本时,Flutter的平台依赖匹配机制会自动拉取对应版本的firebase_core_web作为Web端的实现依赖。只有当你需要自定义Web端Firebase核心逻辑、或者需要指定特定版本的Web端实现时,才需要手动在pubspec.yaml中声明该依赖。 - 能力范围差异
firebase_core仅暴露全平台通用的核心API,比如初始化Firebase应用、获取Firebase实例等;firebase_core_web除了实现上述通用API外,还可能暴露少量Web平台特有的API,用来对接Web端Firebase JS SDK的专属能力,这部分API仅在Web平台运行时可调用。
注意:哪怕你的项目目前仅面向Web平台开发,也建议直接引入
firebase_core而非单独引入firebase_core_web,可以保证后续如果扩展到其他平台时代码不需要做大幅调整。
内容的提问来源于stack exchange,提问作者Brandon Pillay
相关产品推荐
相关产品推荐

