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-এ গিয়ে একটি নতুন প্রজেক্ট তৈরি করুন:
- Go to: https://console.firebase.google.com
- “Add Project” → প্রজেক্ট নাম দিন
- Android + iOS অ্যাপ Add করুন
- 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 আরও সহজ করে তোলে।