Build a React Todo App with Firebase (Auth + Firestore) — Full Guide

Build a Todo App with React + Firebase (Auth & Firestore)

Quick project: React UI + Firebase Authentication + Firestore realtime DB. Perfect for a portfolio demo.

1) Create Firebase project

  • Go to Firebase console → New project → enable Authentication (Email) and Firestore.
  • Copy Firebase config to your React app.

2) Minimal firebase init (src/firebase.js)

import { initializeApp } from 'firebase/app';
import { getAuth } from 'firebase/auth';
import { getFirestore } from 'firebase/firestore';

const firebaseConfig = {
  apiKey: "REPLACE",
  authDomain: "PROJECT.firebaseapp.com",
  projectId: "PROJECT_ID"
};

const app = initializeApp(firebaseConfig);
export const auth = getAuth(app);
export const db = getFirestore(app);

3) Add todos (example)

import { collection, addDoc, onSnapshot, query, orderBy } from 'firebase/firestore';

const todosCol = collection(db, 'todos');
const q = query(todosCol, orderBy('createdAt', 'desc'));

// add
await addDoc(todosCol, { text: 'Buy milk', userId: uid, createdAt: Date.now() });

// realtime listener
onSnapshot(q, snapshot => {
  const items = snapshot.docs.map(d => ({ id: d.id, ...d.data() }));
  setTodos(items);
});

4) Secure rules (Firestore)

// minimal rules
rules_version = '2';
service cloud.firestore {
  match /databases/{database}/documents {
    match /todos/{docId} {
      allow read, write: if request.auth != null && request.auth.uid == resource.data.userId;
    }
  }
}

Comments

Popular posts from this blog

Why Your Code Works but Gives Wrong Output (Beginner Debugging Guide)

How to Start Coding in 2026 (Beginner Roadmap With Zero Confusion)

Is Coding Hard for Beginners? Honest Truth After Learning Programming