Hello guys how are you? Welcome back on my blog Therichpost. Today in this post I am going to share Creating social login using Firebase in an Ionic Angular app.
Angular 19 came. If you are new then you must check below two links:
Now guys here is the complete code snippet and please follow carefully:
Creating social login using Firebase in an Ionic Angular app involves integrating Firebase Authentication with providers like Google, Facebook, or Apple. Below is a step-by-step guide to achieve this.
Step 1: Set Up Firebase
- Go to the Firebase Console and create a new project.
- Navigate to the Authentication section and enable the desired authentication providers (e.g., Google, Facebook, or Apple).
- For Google, simply enable it and provide the necessary project details.
- For Facebook or Apple, provide additional credentials like the app ID, app secret, or Service ID.
Step 2: Install Required Dependencies
- Install Firebase SDK and AngularFire:
npm install firebase @angular/fire
- Add Firebase configuration in
environments/environment.ts
:
export const environment = { production: false, firebaseConfig: { apiKey: "YOUR_API_KEY", authDomain: "YOUR_AUTH_DOMAIN", projectId: "YOUR_PROJECT_ID", storageBucket: "YOUR_STORAGE_BUCKET", messagingSenderId: "YOUR_MESSAGING_SENDER_ID", appId: "YOUR_APP_ID", } };
Step 3: Import Firebase Modules
- Open
app.module.ts
and add Firebase modules:
import { AngularFireModule } from '@angular/fire/compat'; import { AngularFireAuthModule } from '@angular/fire/compat/auth'; import { environment } from '../environments/environment'; @NgModule({ declarations: [...], imports: [ ..., AngularFireModule.initializeApp(environment.firebaseConfig), AngularFireAuthModule ], providers: [...], bootstrap: [AppComponent] }) export class AppModule { }
Step 4: Add Social Login Logic
Create an AuthService
to manage authentication logic.
auth.service.ts
import { Injectable } from '@angular/core'; import { AngularFireAuth } from '@angular/fire/compat/auth'; import firebase from 'firebase/compat/app'; @Injectable({ providedIn: 'root' }) export class AuthService { constructor(private afAuth: AngularFireAuth) {} // Google Login async googleLogin() { try { const provider = new firebase.auth.GoogleAuthProvider(); const result = await this.afAuth.signInWithPopup(provider); return result.user; // Returns the logged-in user details } catch (error) { console.error('Error during Google login:', error); throw error; } } // Facebook Login async facebookLogin() { try { const provider = new firebase.auth.FacebookAuthProvider(); const result = await this.afAuth.signInWithPopup(provider); return result.user; } catch (error) { console.error('Error during Facebook login:', error); throw error; } } // Logout async logout() { await this.afAuth.signOut(); } }
Step 5: Create a Login Page
Generate a login page using Ionic CLI:
ionic generate page login
login.page.html
<ion-header> <ion-toolbar> <ion-title>Login</ion-title> </ion-toolbar> </ion-header> <ion-content class="ion-padding"> <ion-button expand="block" (click)="loginWithGoogle()">Login with Google</ion-button> <ion-button expand="block" color="secondary" (click)="loginWithFacebook()">Login with Facebook</ion-button> </ion-content>
login.page.ts
import { Component } from '@angular/core'; import { AuthService } from '../services/auth.service'; @Component({ selector: 'app-login', templateUrl: './login.page.html', styleUrls: ['./login.page.scss'], }) export class LoginPage { constructor(private authService: AuthService) {} async loginWithGoogle() { try { const user = await this.authService.googleLogin(); console.log('Google User:', user); } catch (error) { console.error('Google Login Error:', error); } } async loginWithFacebook() { try { const user = await this.authService.facebookLogin(); console.log('Facebook User:', user); } catch (error) { console.error('Facebook Login Error:', error); } } }
Step 6: Test Your App
- Run the app:
ionic serve
- Test the login functionality with Google and Facebook.
Optional: Add Platform-Specific Support
If you plan to deploy your app on mobile platforms (iOS/Android), use @capacitor-firebase/auth
for better integration with native features:
- Install Capacitor Firebase Auth:
npm install @capacitor-firebase/auth
- Configure native login flows using Capacitor plugins for Google and Facebook.
Let me know if you’d like details on the native configuration!
Ajay
Thanks
Leave a Reply