Introduction

Google Firebase is trending nowadays. It has around 10 sign in methods which include email, Google, Facebook, phone, Twitter, Yahoo etc. We are covering only the email and Google login options in this article. Now, we are going step by step. I have given the git repository link at the bottom as well.

Steps

  1. The first and most basic step is to create a new application in Flutter. If you are a beginner in Flutter, then you can check my blog Create a first app in Flutter. I have created an app named “flutter_email_signin”.
  2. Now, you need to set up a project in Google Firebase. Follow the below steps for that. Please follow the steps very carefully.
Google Firebase Email and GooglePlus Login in Flutter
Google Firebase Email and GooglePlus Login in Flutter
Google Firebase Email and GooglePlus Login in Flutter
Google Firebase Email and GooglePlus Login in Flutter
  1. Now, you need to enable the Email/Password and/or Google Sign In method in Firebase. For that, you need to go to the Authentication tab and then the "Sign in" method tab. From there, enable Email/Password and Google sign-in method. Please check the screenshot.
Google Firebase Email and GooglePlus Login in Flutter
Google Firebase Email and GooglePlus Login in Flutter
  1. Go back to the project and open pubspec.yaml file in the root of the project. Pubspec.yaml is used to define all the dependencies and assets of the project.
firebase_auth:
google_sign_in:
Google Firebase Email and GooglePlus Login in Flutter
NOTE[Updated on 23-12-2019]
Due to update in firebase and google_sign_in dependency please use below dependency in above screenshot
  1. firebase_auth: ^0.15.2
  2. google_sign_in: ^4.1.0
  1. Now, we need to programmatically handle signup and sign in in Google firebase. For that, we create 2 pages, login_page.dart and registration_page.dart, and signup and sign in in both pages. I have attached a link for the git repo in the bottom of the article, you can take reference from there. Here I will just define sign in and sign up methods for understanding.

    import 'package:firebase_auth/firebase_auth.dart';
  • SignIn Using Email/Password in Google Firebase
    1. Future < FirebaseUser > signIn(String email, String password) async {
    2. Try {
    3. FirebaseUser user = await auth.signInWithEmailAndPassword(email: email, password: password);
    4. assert(user != null);
    5. assert(await user.getIdToken() != null);
    6. final FirebaseUser currentUser = await auth.currentUser();
    7. assert(user.uid == currentUser.uid);
    8. return user;
    9. } catch (e) {
    10. handleError(e);
    11. return null;
    12. }
    13. }
  1. When you sign up successfully, you can check the Google Firebase store and the user details in server. Please check the screenshot.
Google Firebase Email and GooglePlus Login in Flutter
NOTE
PLEASE CHECK OUT ATTACHED ZIP FULL SOURCE CODE. YOU NEED TO ADD YOUR google-services.json FILE IN ANDROID => APP FOLDER.
NOTE
Due to update in dependencies I have wrote another article in which Google Login included with Google Drive Feature, Please check that article so you may not face any errors and issues. Please check this article.