A Flutter plugin to use the Firebase Authentication API.
For Flutter plugins for other Firebase products, see FlutterFire.md.
Note: This plugin is still under development, and some APIs might not be available yet. Feedback and Pull Requests are most welcome!
The Google Sign-in plugin is required to use the firebase_auth plugin. Follow the Google sign-in plugin installation instructions.
To use the firebase_auth plugin, follow the plugin installation instructions.
Enable the Google services by configuring the Gradle scripts as such.
[project]/android/build.gradle
file.dependencies { // Example existing classpath classpath 'com.android.tools.build:gradle:3.0.1' // Add the google services classpath classpath 'com.google.gms:google-services:3.2.1' }
[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.
Add the following imports to your Dart code:
import 'package:firebase_auth/firebase_auth.dart';
Initialize FirebaseAuth
:
final FirebaseAuth _auth = FirebaseAuth.instance;
You can now use the Firebase _auth
to authenticate in your Dart code, e.g.
Future<FirebaseUser> _handleSignIn() async { GoogleSignInAccount googleUser = await _googleSignIn.signIn(); GoogleSignInAuthentication googleAuth = await googleUser.authentication; FirebaseUser user = await _auth.signInWithGoogle( accessToken: googleAuth.accessToken, idToken: googleAuth.idToken, ); 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));
See the example application source for a complete sample app using the Firebase authentication.
Please file issues to send feedback or report a bug. Thank you!