最佳阵容 | Flutter Firebase 插件更新
作者 / Chris Sells, Flutter 开发者体验产品经理
Flutter 不仅是一个引擎、一套 widget 和一些工具,它还包括一个庞大的 package 生态系统,让应用得以实现远多于开箱即用的那些功能。在这个生态系统里,一组支持 Firebase 的 package 人气颇高,即 FlutterFire。
为了全面提升 Flutter 质量,在最近的进展更新中,我们宣布 Dart、Flutter 和 Firebase 领域的资深咨询公司 Invertase 将接手 FlutterFire 插件的大部分开发和维护。宣布后不久,Invertase 已经取得了巨大进展,包括新的 Core、Authentication 和 Firestore 插件。这些插件提供了新的功能,并使 API 与其他平台的 Firebase SDK 更加一致。此外,Invertase 还创建了一个完整的 Flutter 专用文档网站,为每个 Firebase 插件提供安装说明和常见场景的代码片段,以及帮助大家将代码移至新版本的迁移指南。最后,除了以上出色成果,此版本还解决了 300 多个 issue,合并了 80 多个 pull request。
开发原则
插件的功能将与原生 Firebase SDK 一致,例如以同步方式而非异步方式访问当前登录的用户;
命名将与原生 Firebase SDK 一致,比如使用 get() 而非 getDocuments();
所有插件都将依赖于 firebase_core,并始终要求进行初始化 (使用 Firebase.initializeApp() );
所有插件都将依赖于相同的底层原生 Firebase SDK 版本;
所有插件都将更新为使用联合 (federation) 插件的方式开发,从而支持更多样的平台,而不仅仅是移动平台;
所有插件都将需要显式采用新 firebase_core 版本,使得运行 flutter pub update 不会破坏代码;
旧名称将被弃用,以方便采用,因为插件已基于这些原则进行更新;
解决重要 issue,并在更新每套插件时为其创建全套测试。
联合插件 https://flutter.cn/docs/development/packages-and-plugins/developing-packages#federated-plugins
这些开发原则的目的是为 Flutter 上的新老 Firebase 用户提供更好的体验。我们也在努力确保您能在每套发布 3-4 个插件更新时及时跟进,而不必等待整套 15 个插件更新完毕。
迁移
迁移到新的 Core、Authentication 和 Firestore 插件很轻松,只需更新 pubspec.yaml 文件中的版本,用 flutter pub get 获取这些版本,然后添加对 Firebase.initializeApp() 的调用即可。迁移完成后,尽管旧的方法和属性仍可以继续使用,但您也可以选择处理已被弃用的名称。
Core https://firebase.flutter.dev/docs/core/usage Authentication https://firebase.flutter.dev/docs/auth/overview Firestore https://firebase.flutter.dev/docs/firestore/overview Firebase.initializeApp() https://firebase.flutter.dev/docs/overview#initializing-flutterfire
前文所述的这些原则相关的工作还在进行中,但如果您采用了新的 Core,依然可以继续使用其余无重大变更的插件;Storage 和 Messaging 之类的插件也已经更新为依赖于新的 Core。这意味着您现在将获得更一致的体验,并准备迎接即将到来的更多、更好的变化。
有关新版本 Core、Authentication 和 Firestore 的完整变更列表,以及如何升级 Firebase 代码的详细说明,请阅读迁移指南。
迁移指南 https://firebase.flutter.dev/docs/migration
平台支持
FlutterFire 文档网站
https://firebase.flutter.dev/
尽管每个 Firebase 插件都支持 Android 和 iOS,但并非所有插件都支持 macOS。随着清单中后续工作的开展,我们将逐步提供支持。一些 Flutter 插件也已经同时支持移动端和 web 端。随着工作的继续,支持范围将不断扩大。
文档
除了提供全面的迁移指南和展示每个插件的平台支持情况外,我们还提供了 Flutter 专用文档的初稿。
Flutter 专用文档 https://firebase.flutter.dev/docs
您无需再阅读原生的 Android 或 web 版 Firebase 文档,不必再猜测 Flutter 应用中要使用的等效 API 了!全新的文档网站上包含大多数 Firebase 插件 (不仅仅是 Core、Authentication 和 Firestore) 的相关文档以及 Android、iOS 和 web 端的安装说明、常见场景的概览与代码片段以及视频供您使用参考。
未来计划
我们也发布了第一轮更新,包括 Core、Authentication 和 Firestore 插件。为 Flutter 开发者提供最佳的插件阵容,在下一轮的更新中应该会包含 Crashlytics、Functions、Messaging 和 Storage。这些插件更新完毕后,我们会回顾以确保这 7 个插件在 web 端也符合我们的设计原则。这是确保 Flutter 开发者享有其他平台的 Firebase SDK 提供的全方位服务的第一大步。如果您对这方面的工作有任何意见或者建议,请反馈给我们。也欢迎您在微信留言区参与讨论!
提交 issue https://github.com/firebaseextended/flutterfire/issues
推荐阅读