FirebaseUI-Android icon indicating copy to clipboard operation
FirebaseUI-Android copied to clipboard

Firebase UI Android v10.0.0-beta01 Release

Open thatfiredev opened this issue 2 weeks ago • 1 comments

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 EmailAuthScreen and PhoneAuthScreen expose 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(), and authStateFlow to 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) with start(), cancel(), and dispose() 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!

thatfiredev avatar Dec 04 '25 23:12 thatfiredev

Hi! When do you plan to fix this bug? https://github.com/firebase/FirebaseUI-Android/issues/2282

splendapps avatar Dec 05 '25 14:12 splendapps

Does the minimal example provided in the readme for the auth work?

It gives me errors. I just want to check if anyone else is experiencing the same issue, and whether there’s a fix or something I might be missing.

Image

scontreraslopez avatar Dec 15 '25 17:12 scontreraslopez

Does the minimal example provided in the readme for the auth work?

It gives me errors. I just want to check if anyone else is experiencing the same issue, and whether there’s a fix or something I might be missing. Image

Try this:

private fun createAuthConfig(context: Context, theme: AuthUITheme): AuthUIConfiguration {
    val providers = listOf(
        AuthProvider.Email(
            emailLinkActionCodeSettings = null,
            passwordValidationRules = emptyList()
        ),
        AuthProvider.Google(
            scopes = listOf("email", "profile"),
            serverClientId = context.getString(R.string.default_web_client_id)
        )
    )

    return AuthUIConfiguration(
        context = context,
        providers = providers,
        tosUrl = TOS_URL,
        privacyPolicyUrl = PRIVACY_URL,
        theme = theme,
        isMfaEnabled = false
    )
}

Pantsoffski avatar Dec 17 '25 16:12 Pantsoffski

Hi @scontreraslopez , thanks for pointing out the errors in the README.

The guide has been updated now check it out on the version-10.0.0-beta01 branch.

demolaf avatar Dec 18 '25 08:12 demolaf