firebase / firebase/FirebaseUI-Android

Firebase UI Android v10.0.0-beta01 Release

Đang mở
#2,285 6 bình luận 1 reaction 0 người được giao Xem trên GitHub
keep open
Ngôn ngữ chính
Kotlin
Star
4.8k
Fork
1.9k
Merge trung bình
2 ngày 9 giờ
Pull request đã merge (30 ngày)
42

Mô tả

# 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](https://github.com/firebase/FirebaseUI-Android/tree/version-10.0.0-beta01).
Check out [auth/README.md](https://github.com/firebase/FirebaseUI-Android/blob/version-10.0.0-beta01/auth/README.md) to get started or [upgrade-to-10.0.md](https://github.com/firebase/FirebaseUI-Android/blob/version-10.0.0-beta01/docs/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\!

Hướng dẫn đóng góp

Mở hướng dẫn đóng góp

Đánh giá

Issue này chưa được đánh giá.

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.