Skip to content
This repository has been archived by the owner on Apr 1, 2022. It is now read-only.

Latest commit

 

History

History
79 lines (71 loc) · 1.95 KB

README.md

File metadata and controls

79 lines (71 loc) · 1.95 KB

flutter_firebase_auth_ui

This project will help you build simple and light UI to sign-in users. No big dependencies!

/!\ This library is used in some of my apps and it will be updated as and when needed :) PR are welcome!

Sign-in button list

This package doesn't (yet) include simple buttons to sign-in users. I will advise you to use flutter_signin_button.

// Google Auth
SignInButton(Buttons.Google, onPressed: _signInWithGoogle)
// Email
SignInButtonBuilder(
  icon: Icons.email,
  text: 'Sign-in with email',
  onPressed: _signInWithEmail,
  backgroundColor: Colors.blueGrey[700],
)
// Phone
SignInButtonBuilder(
  icon: Icons.phone,
  text: 'Sign-in with phone',
  onPressed: _signInWithPhone,
  backgroundColor: Colors.blueGrey[700],
)

Google Auth

Requires firebase_auth. Please follow the installation instructions. Does NOT requires this plugin, as the UI is part of the firebase_auth plugin.

Future<FirebaseUser> _signInWithGoogle() async {
  final GoogleSignInAccount googleUser = await _googleSignIn.signIn();
  if (googleUser != null) {
    final GoogleSignInAuthentication googleAuth = await googleUser.authentication;
    final AuthCredential credential = GoogleAuthProvider.getCredential(
      accessToken: googleAuth.accessToken,
      idToken: googleAuth.idToken,
    );
    AuthResult result = await _auth.signInWithCredential(credential);
    return result?.user;
  }
  return null;
}

Phone

void _signInWithPhone() {
  showDialog(
    context: context,
    builder: (context) {
      return SignInPhonePage(onLoggedIn: (authResult) {
        Navigator.of(context).pop();
      });
    },
  );
}

Email

void _signInWithEmail() {
  showDialog(
    context: context,
    builder: (context) {
      return SignInEmailPasswordPage(onLoggedIn: (authResult) {
        Navigator.of(context).pop();
      });
    },
  );
}