Updates on Flutter and Firebase

Updated Firebase plugins for higher quality and a new site with Flutter-specific docs, snippets, and videos

Chris Sells
Aug 19, 2020 · 5 min read

Flutter is more than just an engine, a set of widgets, and some tools; it also includes a large ecosystem of packages to add functionality to your apps beyond what comes out of the box. Some of the most popular packages are the set that supports Firebase (aka FlutterFire). As part of our continued focus on quality for all aspects of Flutter, we recently announced that Invertase, a consulting firm with deep expertise in Dart, Flutter, and Firebase, would be taking over the bulk of the development and maintenance of the FlutterFire plugins. In just the short amount of time since that announcement, they’ve made a tremendous amount of progress, including a new set of Core, Authentication, and Firestore plugins that provide new functionality and align the APIs more closely with other Firebase SDKs. In addition, they’ve created a whole site of Flutter-specific documentation for each of the Firebase plugins that includes installation instructions and code snippets for common scenarios, as well as a migration guide to help you move your code to this new version. And finally, in addition to all of that great work, this release represents 300+ issues resolved and 80+ pull requests merged.

Principles

  • Features will be consistent with native Firebase SDKs, like the ability to access the currently logged-in user synchronously instead of asynchronously.
  • Naming will be consistent with native Firebase SDKs, like the use of get() instead of getDocuments().
  • All plugins will depend on firebase_core and consistently require initialization using Firebase.initializeApp().
  • All plugins will depend on the same underlying native Firebase SDK version.
  • All plugins will be updated to use federation, making it possible to support a wide range of platforms and not just mobile.
  • All plugins will require explicit adoption of the new firebase_core version, so that running flutter pub update won’t break your code.
  • Old names will be deprecated to ease adoption as plugins are updated to meet these principles.
  • Important issues will be fixed and a full set of tests will be created for each set of plugins as they are updated.

The goal of these principles is to make for a better experience for new and existing Firebase users on Flutter. We’re also working hard to make sure that you’re able to adopt the changes to each set of 3-4 plugins as we release them instead of waiting for the whole set of 15 plugins to be updated.

Migration

Not all of the work associated with these principles has been completed yet (in fact, we’re just getting started), but if you do adopt the new Core, you can continue to use the rest of the plugins that haven’t had any major changes yet; even plugins, like Storage and Messaging, have been updated to depend on the new Core. This means that you’ll get a more consistent experience across the board now with more changes coming that will just make things better.

For the full list of changes for the new versions of Core, Authentication, and Firestore, as well as detailed instructions on how to bring your Firebase code forward, I recommend that you read the Migration Guide.

Platform support

Current status of the Firebase plugins for Flutter

You’ll notice that while every Firebase plugin supports mobile, which includes Android and iOS, not all of them support macOS. We’ll bring that support along as we work our way through the list. You’ll also notice that several of the plugins already support Flutter on the web as well as mobile. The breadth of support will continue to grow as work continues.

Documentation

No more reading the native Android or web Firebase docs and using that to guess the equivalent APIs to use in your Flutter apps! On this site, you’ll find docs for most of the Firebase plugins (many more than just Core, Authentication, and Firestore), Android, iOS, web-specific installation instructions, an overview of common scenarios with code snippets, and videos.

What’s next?

Flutter

Flutter is Google's mobile UI framework for crafting…

Flutter

Flutter is Google's mobile UI framework for crafting high-quality native interfaces on iOS and Android in record time. Flutter works with existing code, is used by developers and organizations around the world, and is free and open source. Learn more at https://flutter.dev

Chris Sells

Written by

Chris Sells is a Google Product Manager on the Flutter development experience. He enjoys long walks on the beach and various technologies.

Flutter

Flutter is Google's mobile UI framework for crafting high-quality native interfaces on iOS and Android in record time. Flutter works with existing code, is used by developers and organizations around the world, and is free and open source. Learn more at https://flutter.dev

Medium is an open platform where 170 million readers come to find insightful and dynamic thinking. Here, expert and undiscovered voices alike dive into the heart of any topic and bring new ideas to the surface. Learn more

Follow the writers, publications, and topics that matter to you, and you’ll see them on your homepage and in your inbox. Explore

If you have a story to tell, knowledge to share, or a perspective to offer — welcome home. It’s easy and free to post your thinking on any topic. Write on Medium

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store