🚀 #100DaysOfReact – Day 1: Setting Up Firebase Authentication and Protected Routes

·

3 min read

Today marks Day 1 of my #100DaysOfReact journey! 🎉 I’m excited to kick off this challenge by building a Task Manager App in React.js and sharing my daily learnings with the community.

đź’ˇ What I Built Today

On Day 1, I focused on setting up the core functionalities of a user authentication system for my app. The main features I implemented were:

  1. Firebase Authentication:

    • Set up user login and registration with Firebase.

    • Handled authentication state using Firebase’s built-in services.

  2. Protected Routes with React Router:

    • Implemented protected routes that can only be accessed by logged-in users.

    • Used react-router-dom to manage navigation and ensure the correct routes are protected.

  3. Global State Management with Context API:

    • Managed the user authentication state globally using React’s Context API, making the auth state available across the app.

Let’s dive deeper into how I implemented these features.

🔥 Key Features Implemented

1. Firebase Authentication

Firebase makes setting up user authentication incredibly easy. Today, I implemented the ability for users to sign up and log in using their email and password. Firebase manages all the heavy lifting related to user sessions, making it an ideal choice for handling authentication.

By integrating Firebase, I can easily track the current user's status and secure parts of the application that should only be available to logged-in users.

2. React Router & Protected Routes

One of the key goals for today was to set up protected routes. Using React Router, I created routes that are only accessible if the user is authenticated. If an unauthenticated user tries to access these routes (like a dashboard), they’re redirected to the login page.

This adds an extra layer of security, ensuring that only authenticated users can view sensitive parts of the app.

3. Context API for Global State Management

To manage the authentication state across the entire app, I used React’s Context API. This allows me to create a global context where I can store the current user’s information and make it accessible throughout the app.

The benefit of this approach is that any component, whether it’s the header, sidebar, or a protected page, can access the user’s information and decide what to display based on whether the user is logged in.


🛠️ What I Learned Today

Here are some of the key takeaways from Day 1:

  • Firebase Authentication: I learned how easy it is to integrate Firebase for handling user authentication. Firebase simplifies everything from sign-up and login to managing user sessions. I now understand how to handle user states and secure authenticated areas of the app.

  • Protected Routes in React Router: I deepened my knowledge of React Router by learning how to create protected routes. This is essential for any app that has parts of the UI that should only be accessible to authenticated users.

  • Context API: Using Context API to manage global state across the app made it easier to track the current user and provide a seamless experience. This is key for managing state in a scalable way without passing props manually between components.


🌟 Day 1 Summary

Today’s journey was all about laying the foundation for a secure and scalable React application. By setting up Firebase Authentication and Protected Routes, I was able to create a solid structure for the app.

The next step will be to build out more components and continue to improve the user interface while exploring more advanced React features. Looking forward to what Day 2 brings!

Stay tuned for more updates! If you're following along, feel free to connect with me here or check out my GitHub repository:

đź”— GitHub Repository: Task Manager

Â