Firebase Authentication

Firebase Authentication in React Native

Firebase Authentication হলো গুগলের একটি শক্তিশালী ও সহজে ব্যবহারযোগ্য Authentication সিস্টেম। React Native অ্যাপের মধ্যে Email/Password Login, Google Login, Phone Auth সহ আরও অনেক সাইন-ইন পদ্ধতি ব্যবহার করা যায় খুব সহজেই। এই টিউটোরিয়ালে আমরা Firebase Auth এর সম্পূর্ণ সেটআপ, ইউজার রেজিস্ট্রেশন, লগইন এবং লগআউট নিয়ে বিস্তারিত শিখবো।

🔹 Firebase Authentication কী?

Firebase Authentication হলো একটি Cloud-based Authentication Service যা User Identity Manage করতে সাহায্য করে। এর ফিচারগুলো:

  • Email & Password Authentication
  • Google, Facebook, Github Login
  • Phone Number OTP Authentication
  • Token Based Secure Session
  • Real-time User State Listener

🔹 Step 1: Firebase Project Create

Firebase Console-এ গিয়ে একটি নতুন প্রজেক্ট তৈরি করুন:

  1. Go to: https://console.firebase.google.com
  2. “Add Project” → প্রজেক্ট নাম দিন
  3. Android + iOS অ্যাপ Add করুন
  4. Google-Services ফাইল Download করে Your App-এ রাখুন

🔹 Step 2: Firebase Install (React Native)

npm install @react-native-firebase/app
npm install @react-native-firebase/auth
    

🔹 Step 3: Email/Password Registration

import auth from '@react-native-firebase/auth';

export const registerUser = async (email, password) => {
  try {
    const user = await auth().createUserWithEmailAndPassword(email, password);
    return user;
  } catch (error) {
    console.log(error);
  }
};

👉 এটি নতুন ইউজার তৈরি করে এবং Firebase Console-এ ইউজার দেখা যাবে।

🔹 Step 4: Login (Email/Password)

export const loginUser = async (email, password) => {
  try {
    const user = await auth().signInWithEmailAndPassword(email, password);
    return user;
  } catch (error) {
    console.log(error);
  }
};

👉 ইউজার সঠিক হলে Auth Token সহ Sign In সম্পন্ন হয়।

🔹 Step 5: Logout

export const logoutUser = async () => {
  try {
    await auth().signOut();
  } catch (error) {
    console.log(error);
  }
};

👉 Logout করলে App state থেকে User null হয়ে যায়।

🔹 Step 6: User State Listener (App জুড়ে ব্যবহার)

Firebase real-time Auth State Listener দেয়—যখনই ইউজার লগইন/লগআউট করবে, state অটোমেটিক পরিবর্তন হবে।

import { useEffect, useState } from "react";
import auth from "@react-native-firebase/auth";

export default function useAuth() {
  const [user, setUser] = useState(null);

  useEffect(() => {
    const sub = auth().onAuthStateChanged((currentUser) => {
      setUser(currentUser);
    });
    return sub;
  }, []);

  return user;
}

👉 এটি Authentication Flow অনেক সহজ করে দেয়।

🔹 Step 7: Google Authentication (Optional)

Google Sign-In করতে চাইলে নিচের লাইব্রেরি লাগবে:

npm install @react-native-google-signin/google-signin
    

Google Token → Firebase Auth-এ পাস করতে হবে:

const googleCredential = auth.GoogleAuthProvider.credential(idToken);

return auth().signInWithCredential(googleCredential);

🔹 Firebase Auth Errors & Solutions

  • auth/email-already-in-use → ইমেইল আগেই রেজিস্টার্ড
  • auth/weak-password → পাসওয়ার্ড দুর্বল
  • auth/invalid-email → ইমেইল ফরম্যাট ভুল
  • auth/user-not-found → ইউজার নেই
  • auth/wrong-password → পাসওয়ার্ড ভুল

🔹 কোথায় Firebase Authentication ব্যবহার হবে?

  • Learning App / Quiz App
  • E-commerce Login System
  • Chat Application
  • Ride Sharing Apps
  • Blog App User Access Control

✔ উপসংহার

Firebase Authentication React Native অ্যাপের জন্য সবচেয়ে সহজ এবং নিরাপদ Authentication সিস্টেমগুলোর একটি। খুব কম কোডে Email/Password থেকে Google Login পর্যন্ত সবকিছু সেটআপ করা যায়। এর Real-time Listener অ্যাপের User Flow আরও সহজ করে তোলে।

👼 Quiz
/

লোড হচ্ছে...