Table of Contents
ToggleIntroduction
Firebase Authentication is a robust solution for managing user sign-ins in mobile apps. By integrating it with Google Sign-In, you can provide a seamless and secure login experience for your users. Whether you’re building a chat app, e-commerce platform, or social network, this guide will help you implement Firebase Authentication with Google Sign-In in your Android project.
Prerequisites
Before diving into the integration, ensure you have the following:
- Android Studio installed on your machine.
- A Firebase account for managing your backend.
- A basic understanding of Android app development.
Setting Up Firebase
Creating a Firebase Project
- Go to the Firebase Console.
- Click on Add Project and provide a project name.
- Follow the setup wizard to complete the project creation.
Adding Your Android App to Firebase
- Navigate to Project Settings > General > Add App.
- Enter your app’s package name.
- Download the
google-services.json
file and add it to your app’sapp/
directory.
Adding Firebase to Your Android Project
To integrate Firebase, include the following in your build.gradle
files:
- Project-Level
build.gradle
:
dependencies {
classpath 'com.google.gms:google-services:4.3.15'
}
- App-Level
build.gradle
:
// Import the Firebase BoM
implementation platform(‘com.google.firebase:firebase-bom:33.7.0’)
// TODO: Add the dependencies for Firebase products you want to use
// When using the BoM, don’t specify versions in Firebase dependencies
implementation ‘com.google.firebase:firebase-analytics’
implementation ‘com.google.android.gms:play-services-auth:21.3.0’
implementation(“com.google.firebase:firebase-auth”)
Â
Configuring Google Sign-In in Firebase
- Open the Firebase Console.
- Navigate to Authentication > Sign-in Methods.
- Enable Google Sign-In and save changes.
- Copy the Web client ID under your app’s OAuth 2.0 Client IDs.
Designing the UI
Create a simple and attractive UI with a Google Sign-In button. Here’s an example layout in XML:
Â
<LinearLayout
android:id="@+id/googleSignInBtn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:background="#E9E9E9">
Â
<ImageView
android:id=“@+id/imgGLogo”
android:layout_width=“40dp”
android:layout_height=“40dp”
android:src=“@drawable/google_logo”/>
<TextView
android:id="@+id/txtSignIn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="6dp"
android:text="Sign In With Google"
android:textColor="#0D2A75"
android:textStyle="bold"/>
</LinearLayout>
Implementing Google Sign-In Logic
Configuring GoogleSignInOptions
In your MainActivity
:
.requestIdToken(getString(R.string.default_web_client_id))
.requestEmail()
.build();
mGoogleSignInClient = GoogleSignIn.getClient(this, gso);
Authenticating Users with Firebase
Handling Sign-In
Trigger the Google Sign-In intent:
private void signIn(){
Intent signInIntent = mGoogleSignInClient.getSignInIntent();Â
startActivityForResult(signInIntent, RC_SIGN_IN);
 }
Authenticating with Firebase
Upon successful sign-in:
Â
try {
GoogleSignInAccount account = task.getResult(ApiException.class);
AuthCredential credential = GoogleAuthProvider.getCredential(account.getIdToken(), null);
mAuth.signInWithCredential(credential)
.addOnCompleteListener(this, task -> {
if (task.isSuccessful()) {
FirebaseUser user = mAuth.getCurrentUser();
Toast.makeText(this, “Welcome, ” + user.getDisplayName(), Toast.LENGTH_SHORT).show();
}
});
} catch (ApiException e) {
Log.w(“SignInError”, e.getMessage());
}
}
Managing User Sessions
Check User Login Status
FirebaseUser currentUser = mAuth.getCurrentUser();
if (currentUser != null) {
// User is logged in
}
Sign Out
mGoogleSignInClient.signOut();
mAuth.signOut();
Conclusion
Integrating Firebase Authentication with Google Sign-In adds a professional touch to your app, ensuring secure and convenient access for users. Follow this guide to streamline the process and offer a great user experience.
FAQs
1. How secure is Firebase Authentication?
Firebase uses industry-standard security measures, ensuring safe user authentication.
2. Can I use other sign-in methods with Firebase?
Yes, Firebase supports various methods like email, phone, and social logins.
3. What happens if a user revokes access?
Firebase automatically prevents further access to the app for that user.
4. Is Google Sign-In free to use?
Yes, Google Sign-In and Firebase Authentication are free, but usage limits apply.
5. How can I troubleshoot authentication failures?
Check logs, verify your configuration, and ensure valid SHA-1 keys.