最佳阵容 | Flutter Firebase 插件更新

2020 年 8 月 28 日 谷歌开发者

作者 / 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。



开发原则


一直以来,Flutter 的 Firebase 插件是由热情的团队成员们 (在力所能及的范围内) 自发打造和维护的。随着插件方面的开发工作移交至 Invertase,我们也借此机会和 Invertase 团队共同重新审视了基础内容,得以催生出以下开发原则:
  • 插件的功能将与原生 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 个插件更新完毕。



迁移


迁移到新的 CoreAuthenticationFirestore 插件很轻松,只需更新 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


平台支持


Invertase 当前的工作重心是 Android 和 iOS,同时包括了与 iOS 共享 99% 的代码的 macOS。您可以在全新的 FlutterFire 文档网站查看 Firebase 插件的支持信息。


  • FlutterFire 文档网站

    https://firebase.flutter.dev/

△ Flutter Firebase 插件的当前状态

尽管每个 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


推荐阅读






  点击屏末  | 访问 Flutter 开发者社区中文资源



登录查看更多
0

相关内容

专知会员服务
79+阅读 · 2020年9月28日
流畅的Python 中英文版 PDF 高清电子书
专知会员服务
80+阅读 · 2020年8月2日
【干货书】现代数据平台架构,636页pdf
专知会员服务
250+阅读 · 2020年6月15日
【Manning新书】现代Java实战,592页pdf
专知会员服务
98+阅读 · 2020年5月22日
【2020新书】如何认真写好的代码和软件,318页pdf
专知会员服务
63+阅读 · 2020年3月26日
【新书】Java企业微服务,Enterprise Java Microservices,272页pdf
【电子书】Flutter实战305页PDF免费下载
专知会员服务
20+阅读 · 2019年11月7日
机器学习相关资源(框架、库、软件)大列表
专知会员服务
38+阅读 · 2019年10月9日
阿里开源的微服务中间件 Nacos
性能与架构
5+阅读 · 2019年11月5日
微信小程序官方发布支持Python的自动化测试框架
Python程序员
8+阅读 · 2019年9月4日
重磅!Flutter 2019年最新进展和未来展望
前端之巅
4+阅读 · 2019年6月20日
美团:基于跨平台框架Flutter的动态化平台建设
前端之巅
14+阅读 · 2019年6月17日
专访阿里亚顿:Serverless与BFF与前端
前端之巅
45+阅读 · 2019年5月8日
从webview到flutter:详解iOS中的Web开发
前端之巅
5+阅读 · 2019年3月24日
软件推荐 | Flutter 开发的精美时间轴应用
开源中国
6+阅读 · 2019年1月4日
3月份GitHub上最热门的开源项目
大数据技术
3+阅读 · 2018年4月10日
Arxiv
22+阅读 · 2018年8月30日
Arxiv
15+阅读 · 2018年6月23日
Arxiv
11+阅读 · 2018年4月25日
VIP会员
相关VIP内容
专知会员服务
79+阅读 · 2020年9月28日
流畅的Python 中英文版 PDF 高清电子书
专知会员服务
80+阅读 · 2020年8月2日
【干货书】现代数据平台架构,636页pdf
专知会员服务
250+阅读 · 2020年6月15日
【Manning新书】现代Java实战,592页pdf
专知会员服务
98+阅读 · 2020年5月22日
【2020新书】如何认真写好的代码和软件,318页pdf
专知会员服务
63+阅读 · 2020年3月26日
【新书】Java企业微服务,Enterprise Java Microservices,272页pdf
【电子书】Flutter实战305页PDF免费下载
专知会员服务
20+阅读 · 2019年11月7日
机器学习相关资源(框架、库、软件)大列表
专知会员服务
38+阅读 · 2019年10月9日
相关资讯
阿里开源的微服务中间件 Nacos
性能与架构
5+阅读 · 2019年11月5日
微信小程序官方发布支持Python的自动化测试框架
Python程序员
8+阅读 · 2019年9月4日
重磅!Flutter 2019年最新进展和未来展望
前端之巅
4+阅读 · 2019年6月20日
美团:基于跨平台框架Flutter的动态化平台建设
前端之巅
14+阅读 · 2019年6月17日
专访阿里亚顿:Serverless与BFF与前端
前端之巅
45+阅读 · 2019年5月8日
从webview到flutter:详解iOS中的Web开发
前端之巅
5+阅读 · 2019年3月24日
软件推荐 | Flutter 开发的精美时间轴应用
开源中国
6+阅读 · 2019年1月4日
3月份GitHub上最热门的开源项目
大数据技术
3+阅读 · 2018年4月10日
Top
微信扫码咨询专知VIP会员