-
Notifications
You must be signed in to change notification settings - Fork 1.9k
Description
Firebase UI Android v10.0.0-beta01 Release
We're excited to announce Firebase UI Android v10.0.0-beta01. This major update upgrades this library to natively support Jetpack Compose.
What's New in Beta
This development phase focused on 3 key areas of the Auth module:
- Compose Upgrade: Removing legacy XML-based components in favor of modern Kotlin-based Composable components.
- API Redesign: A complete redesign to better support developers and improve maintenance.
- Feature Development: Build and improve upon a suite of features to provide a complete set of authentication flows, including MFA, custom providers and multi-app support.
Note: There are no major changes to the other Firebase UI Android modules (database, firestore and storage).
Improved Core API
The new API comes packed with a host of new supporting features and utilities for managing authentication in your applications. New features include:
-
FirebaseAuthScreen: A single entry point that manages the entire auth flow based on your configuration i.e AuthUIConfiguration.
-
AuthUIConfiguration: A type-safe configuration object that defines providers, UI theming, MFA, anonymous upgrade, and validation rules for the authentication flow.
-
Custom auth injection: For adding custom authentication via create(app, auth).
Native Compose UI & Theming
-
Fully Themed: With
AuthUITheme, buttons and inputs automatically adopt your app’s Material branding. You can override typography, shapes, and colors, or inject your own ProviderStyle for distinct button looks. -
Slot APIs: The new
EmailAuthScreenandPhoneAuthScreenexpose slot APIs, giving you access to state (EmailAuthContentState) while letting you render your own UI.
State Management
-
State Management: Access multiple supporting functions for managing authentication state is your application. Included in this release are
isSignedIn(),getCurrentUser(), andauthStateFlowto expose authentication state reactively. -
Reactive Streams: Built on Kotlin Flow for improved integration with Compose and modern Android architecture.
-
Lifecycle Management: Controller returned by
createAuthFlow(configuration)withstart(),cancel(), anddispose()methods. -
Flow Control:
start()drives authentication flow per configuration. -
Safe Cancellation:
cancel()transitions to Cancelled state gracefully. -
Resource Management:
dispose()releases coroutines and listeners to prevent memory leaks
Sample app
The repository's sample application has been upgraded to use the new updates. Updated features include:
-
Upgraded application: A "Quickstart" example using FirebaseAuthScreen to demonstrate how to implement a full authentication flow with just a few lines of code.
-
Advanced Customization (Slot APIs): A deep dive into using the new Slot APIs (EmailAuthScreen, PhoneAuthScreen), showing how to inject your own custom UI layouts while retaining the library's state management and validation logic.
-
Theming & Styling: Examples of using AuthUITheme.fromMaterialTheme() to inherit your app’s branding, and using ProviderStyle to create custom buttons.
-
Feature Walkthroughs: End-to-end demonstrations of complex flows, including federated providers, Custom providers, Multi-Factor Authentication (SMS & TOTP) enrollment and Deep Linking.
Try it out
Documentation and source for the updated library are in the v10.0.0-beta-01 branch.
Check out auth/README.md to get started or upgrade-to-10.0.md to learn how to migrate from v9.
We're seeking your feedback as we continue shaping this project, so let us know what you think by commenting below or opening a new issue!