firebase_ui_auth 1.0.0 firebase_ui_auth: ^1.0.0 copied to clipboard
Pre-built widgets library that are integrated with the variety of the Firebase Auth providers.
Firebase UI Auth #
Firebase UI Auth is a set of Flutter widgets and utilities designed to help you build and integrate your user interface with Firebase Authentication.
Please contribute to the discussion with feedback.
Platoform support #
Feature/platform | Android | iOS | Web | macOS | Windows | Linux |
---|---|---|---|---|---|---|
✓ | ✓ | ✓ | ✓ | ✓ (1) | ✓ (1) | |
Phone | ✓ | ✓ | ✓ | ╳ | ╳ | ╳ |
Email link | ✓ | ✓ | ╳ | ╳ | ╳ | ╳ |
Email verification | ✓ | ✓ | ✓ (2) | ✓ (2) | ✓ (1) | ✓ (1) |
Sign in with Apple | ╳ | ✓ | ╳ | ✓ | ╳ | ╳ |
Google Sign in | ✓ | ✓ | ✓ | ✓ | ✓ (1) | ✓ (1) |
Twitter Login | ✓ | ✓ | ✓ | ✓ | ✓ (1) | ✓ (1) |
Facebook Sign in | ✓ | ✓ | ✓ | ✓ | ✓ (1) | ✓ (1) |
- Available with flutterfire_desktop
- No deep-linking into app, so email verification link opens a web page
Installation #
flutter pub add firebase_ui_auth
Getting Started #
Here's a quick example that shows how to build a SignInScreen
and ProfileScreen
in your app
import 'package:flutter/material.dart';
import 'package:firebase_auth/firebase_auth.dart';
import 'package:firebase_ui_auth/firebase_ui_auth.dart';
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
const providers = [EmailAuthProvider()];
return MaterialApp(
initialRoute: FirebaseAuth.instance.currentUser == null ? '/sign-in' : '/profile',
routes: {
'/sign-in': (context) {
return SignInScreen(
providers: providers,
actions: [
AuthStateChangeAction<SignedIn>((context, state) {
Navigator.pushReplacementNamed(context, '/profile');
}),
],
);
},
'/profile': (context) {
return ProfileScreen(
providers: providers,
actions: [
SignedOutAction((context) {
Navigator.pushReplacementNamed(context, '/sign-in');
}),
],
);
},
},
);
}
}
Learn more here.
Roadmap / Features #
- For issues, please create a new issue on the repository.
- For feature requests, & questions, please participate on the discussion thread.
- To contribute a change to this plugin, please review our contribution guide and open a pull request.