GithubHelp home page GithubHelp logo

buddhishan / firebase_auth Goto Github PK

View Code? Open in Web Editor NEW

This project forked from fcodelabs/firebase_auth

0.0 1.0 0.0 96 KB

Firebase authentication for Microsoft Azure AD

License: BSD 3-Clause "New" or "Revised" License

Java 22.83% Objective-C 18.22% Ruby 0.88% Dart 58.07%

firebase_auth's Introduction

firebase_auth plugin

A Flutter plugin to use the Firebase Authentication API.

pub package

For Flutter plugins for other Firebase products, see README.md.

Note: This plugin is still under development, and some APIs might not be available yet. Feedback and Pull Requests are most welcome!

Usage

Configure the Google sign-in plugin

The Google Sign-in plugin is required to use the firebase_auth plugin for Google authentication. Follow the Google sign-in plugin installation instructions.

If you're using Google Sign-in with Firebase auth, be sure to include all required fields in the OAuth consent screen. If you don't, you may encounter an ApiException.

Import the firebase_auth plugin

To use the firebase_auth plugin, follow the plugin installation instructions.

Android integration

Enable the Google services by configuring the Gradle scripts as such.

  1. Add the classpath to the [project]/android/build.gradle file.
dependencies {
  // Example existing classpath
  classpath 'com.android.tools.build:gradle:3.2.1'
  // Add the google services classpath
  classpath 'com.google.gms:google-services:4.3.0'
}
  1. Add the apply plugin to the [project]/android/app/build.gradle file.
// ADD THIS AT THE BOTTOM
apply plugin: 'com.google.gms.google-services'

Note: If this section is not completed you will get an error like this:

java.lang.IllegalStateException:
Default FirebaseApp is not initialized in this process [package name].
Make sure to call FirebaseApp.initializeApp(Context) first.

Note: When you are debugging on android, use a device or AVD with Google Play services. Otherwise you will not be able to authenticate.

Use the plugin

Add the following imports to your Dart code:

import 'package:firebase_auth/firebase_auth.dart';

Initialize GoogleSignIn and FirebaseAuth:

final GoogleSignIn _googleSignIn = GoogleSignIn();
final FirebaseAuth _auth = FirebaseAuth.instance;

You can now use the Firebase _auth to authenticate in your Dart code, e.g.

Future<FirebaseUser> _handleSignIn() async {
  final GoogleSignInAccount googleUser = await _googleSignIn.signIn();
  final GoogleSignInAuthentication googleAuth = await googleUser.authentication;

  final AuthCredential credential = GoogleAuthProvider.getCredential(
    accessToken: googleAuth.accessToken,
    idToken: googleAuth.idToken,
  );

  final FirebaseUser user = (await _auth.signInWithCredential(credential)).user;
  print("signed in " + user.displayName);
  return user;
}

Then from the sign in button onPress, call the _handleSignIn method using a future callback for both the FirebaseUser and possible exception.

_handleSignIn()
    .then((FirebaseUser user) => print(user))
    .catchError((e) => print(e));

Register a user

final FirebaseUser user = (await _auth.createUserWithEmailAndPassword(
      email: 'an email',
      password: 'a password',
    ))
        .user;

Supported Firebase authentication methods

  • Google
  • Email and Password
  • Phone
  • Anonymously
  • GitHub
  • Facebook
  • Twitter

Phone Auth

You can use Firebase Authentication to sign in a user by sending an SMS message to the user's phone. The user signs in using a one-time code contained in the SMS message.

After authentication

After a successful authentication, you will receive a FirebaseUser object. You can use this object to check if the email is verified, to update email, to send verification email and so on. See the FirebaseUser API documentation for more details on the FirebaseUser object.

iOS setup

  1. Enable Phone as a Sign-In method in the Firebase console
  • When testing you can add test phone numbers and verification codes to the Firebase console.
  1. Enable App verification

Note: App verification may use APNs, if using a simulator (where APNs does not work) or APNs is not setup on the device you are using you must set the URL Schemes to the REVERSE_CLIENT_ID from the GoogleServices-Info.plist file.

Android setup

  1. Enable Phone as a Sign-In method in the Firebase console
  • When testing you can add test phone numbers and verification codes to the Firebase console.

Example

See the example application source for a complete sample app using the Firebase authentication.

Issues and feedback

Please file issues to send feedback or report a bug. Thank you!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.