โšก Workshop on Firebase

Workshop on Firebase

Full-Stack Application Development with Firebase Auth, Cloud Firestore NoSQL Database, and Python Flask on Google's Free Spark Plan.

๐Ÿ“… Date 31 / 07 / 2026
๐ŸŽ™๏ธ Speaker / Presenter Arun S R - M Tech CSE
โšก Infrastructure Google Cloud Spark Plan ($0 Free)
Spark Plan Workshop ยท 2-Hour Intensive

Auth & Firestore,
the easy way.

Everything today runs on Firebase's free Spark plan โ€” no credit card, no server, no secrets to babysit. By the end of this session, you'll have shipped a real check-in app.

MODULE 1

Monolith vs BaaS

Traditional auth pain points, Firebase origins & BaaS philosophy.

MODULE 2

Auth & Firestore

7 auth methods, NoSQL documents, collections & security rules.

MODULE 3

Free Tier & Stack

Spark plan limits ($0/mo) & Python Flask + Firebase architecture.

MODULE 4

Live Hands-On Lab

Console setup & building live Python Flask backend app.

Audience Icebreaker Quiz

Test Your Backend Knowledge! Live Quiz

Click an option below to test your understanding of backend effort before we explore Firebase.

Question: How many lines of code are required to handle Google OAuth, Session Tokens, and DB storage with Firebase SDK?

A) ~300 Lines (Passport.js / Custom Server OAuth logic) โŒ
B) ~100 Lines (JWT verification middleware + Express routes) โŒ
C) 3 to 4 Lines (signInWithPopup + GoogleAuthProvider) โœ…
D) Server deployment on AWS EC2 is mandatory โŒ
Click an option above to reveal answer analysis...
Part 1 โ€” The Problem

How auth used to work

Click each step below. This is what you'd build by hand with a MySQL-backed login system โ€” before writing a single feature.

01

Hash & salt passwords

Never store plaintext. Pick bcrypt/argon2, tune cost factors, get it wrong once and every password leaks.

02

Design the users table

Columns, indexes, migrations โ€” and you own every schema change forever.

03

Sessions or JWTs

Issue tokens, store/refresh them, handle expiry, protect against replay attacks.

04

Secrets management

DB credentials, JWT signing keys, .env files โ€” none of it can leak, all of it must rotate.

05

Reset & verify emails

SMTP setup, expiring tokens, rate limiting โ€” a whole subsystem just for "forgot password."

10-Minute Full-Stack Challenge

Traditional Monolith vs Firebase BaaS

Look at what traditional server development forces you to build from scratch versus Google Firebase.

Traditional Monolith / Custom API

Provision Linux VM & Nginx / SSL2 hrs
Database Setup (PostgreSQL/MySQL + Migrations)3 hrs
Password Hashing, JWT Tokens, Refresh Logic4 hrs
WebSockets / Redis for Realtime Updates5 hrs

The Firebase Way

Google Cloud Managed Infrastructure0 sec
Firestore NoSQL Auto-scaling DB0 sec
Firebase Auth (Email, Social, OTP)1 line
Realtime WebSocket Data SyncBuilt-in
Part 1 โ€” The Firebase Way

Same problem, few API calls

No server, no password table, no secrets. Firebase Auth handles hashing, tokens and email flows for you.

// create an account โ€” that's it
import { getAuth, createUserWithEmailAndPassword } from "firebase/auth";

const auth = getAuth();
await createUserWithEmailAndPassword(auth, email, password);
// hashing, storage, uid โ€” all handled
// log a student back in
import { getAuth, signInWithEmailAndPassword } from "firebase/auth";

const auth = getAuth();
await signInWithEmailAndPassword(auth, email, password);
// returns a signed-in user + secure token
// react to auth state anywhere in the app
import { getAuth, onAuthStateChanged } from "firebase/auth";

onAuthStateChanged(getAuth(), (user) => {
  if (user) console.log(user.uid, "is signed in");
});

Swap the provider (Google, phone OTP) without changing this shape at all.

Origins & Architecture

The Origin of Firebase & Google

Created in 2011 by James Tamplin & Andrew Lee, Firebase evolved into Google's premier BaaS (Backend-as-a-Service) app platform.

2011

Founded as Envolve

Created as a real-time web chat API allowing instant message embedding.

2012

Spun off as Firebase

Developers used Envolve to sync arbitrary app data. Firebase launched for NoSQL sync.

2014

Acquired by Google

Google acquired Firebase to form the pillar of modern Google Cloud app development.

Product Ecosystem

Firebase Product Suite

Click tabs below to explore Build (Core Services), Release & Monitor, and Engage pillars:

๐Ÿ”

Firebase Auth

Email, Google, Phone, Anonymous, OAuth, and Passkeys without password hashing.

๐Ÿ”ฅ

Cloud Firestore

NoSQL document database with live WebSocket sync and offline support.

๐Ÿ“

Cloud Storage

Store and serve user media files directly from Google Cloud Storage.

โšก

Cloud Functions

Run serverless Python or Node.js microservices triggered by HTTP or DB events.

Authentication

Firebase Auth Methods

Click each method to view code snippets or test simulated Auth execution:

1. Email & Password โž”
2. Google OAuth โž”
3. Phone OTP / SMS โž”
4. Anonymous Auth โž”
5. GitHub/Apple/Social โž”
6. Custom Tokens / SAML โž”
// 1. Email & Password
import { getAuth, createUserWithEmailAndPassword } from "firebase/auth";
const auth = getAuth();
await createUserWithEmailAndPassword(auth, "student@arunsr.in.net", "SecretPass123");
Part 2 โ€” Firestore

Collections & documents

No tables, no joins, no schema to declare upfront. Click a document to expand it.

๐Ÿ“ students (collection)
๐Ÿ“„ stu_014
name: "Aditi Rao"
rollNo: 14
section: "B"
๐Ÿ“„ stu_027
name: "Karthik S"
rollNo: 27
section: "B"
๐Ÿ“ checkins (collection)
๐Ÿ“„ auto-id
studentId: "stu_014"
classId: "cs101"
timestamp: 10:02am
status: "present"

SQL row โ†’ Firestore doc

Rigid columnsFlexible fields
Foreign keysReference by ID
JOIN queriesNested / denormalized
MigrationsJust write a new field
Server round-tripRealtime listeners
Database Security

Firestore Security Rules Sandbox

Test user roles below to simulate how Firestore Security Rules grant or deny client requests:

// firestore.rules
rules_version = '2';
service cloud.firestore {
  match /databases/{database}/documents {
    match /checkins/{id} {
      allow read: if request.auth != null;
      allow write: if request.auth.uid == request.resource.data.studentId;
    }
  }
}

Simulate Request

Click a user role above to test Firestore Security Rule response!
Part 2 โ€” Free Tier

The Spark Plan

Everything below is $0/month โ€” more than enough for a student project or a class demo.

Firestore storage

1 GiB

Document reads

50,000 / day

Document writes

20,000 / day

Document deletes

20,000 / day

Auth sign-ins

Unlimited email/password

Hosting

10 GB storage ยท 360MB/day transfer
Part 3 โ€” Today's Build

Student Check-In App Schema

One Auth flow, one Firestore write, one live-updating dashboard โ€” connected to Python Flask.

1. Student signs in

  • Firebase Auth
  • Email + password
  • Gets a uid
โ†’

2. Flask Backend API

  • app.py REST endpoint
  • Verify ID Token
  • Firebase Admin SDK
โ†’

3. Realtime Dashboard

  • Write to checkins
  • Realtime listener
  • Live list updates
Part 3 โ€” Hands-On

Create your free project

Everyone follows along on their own laptop โ€” no card required.

1

Go to console.firebase.google.com and sign in with any Google account.

2

Click Add project, name it, skip Google Analytics for now.

3

Open Build โ†’ Authentication โ†’ Get started, enable Email/Password & Anonymous.

4

Open Build โ†’ Firestore Database โ†’ Create database, start in test mode.

5

Go to Project settings โ†’ Service accounts, generate private key (serviceAccountKey.json).

6

Run pip install -r requirements.txt and launch python app.py!

Live Coding Session

Hands-On Lab: Flask + Firebase Build

Use the countdown timer as we run the live Python Flask + Firebase project together!

Lab Timer
15:00
Terminal Command:
cd flask_demo
pip install -r requirements.txt
python app.py

Open Browser: http://127.0.0.1:5000
Wrap-up

You just shipped a real backend

No server, no MySQL, no secrets โ€” auth and a live database, all on Spark.

01

Auth โ†’ few API calls

02

Firestore โ†’ flexible docs

03

Spark plan โ†’ $0 to start

Questions? Let's discuss.

Minute-by-Minute Presenter Guide
Use Arrow Keys or Click Next to navigate slides.