Firebase Security Rules

🔐 React Native (TypeScript) – Firebase Security Rules ব্যাখ্যা

Firebase ব্যবহার করলে ডেটা সুরক্ষা খুবই গুরুত্বপূর্ণ। Security Rules দিয়ে নির্ধারণ করা হয় কে কোন ডেটা পড়তে বা লিখতে পারবে। এই টিউটোরিয়ালে আমরা দেখব কিভাবে ফাইল-বেসড React Native অ্যাপে Firebase Security Rules সেটআপ করবেন এবং কিভাবে এর আউটপুট দেখবেন।


📌 ১. Firebase Security Rules কী?

Firebase Security Rules হলো JSON ভিত্তিক নিয়ম যা Firebase Database এবং Storage এ এক্সেস নিয়ন্ত্রণ করে। উদাহরণস্বরূপ:

{
  "rules": {
    ".read": "auth != null",
    ".write": "auth != null"
  }
}
  

এখানে auth != null নির্দেশ করছে যে শুধুমাত্র লগইন করা ব্যবহারকারীই ডেটা পড়তে বা লিখতে পারবে।


📌 ২. File-based React Native App এ Security Rules ব্যবহার

আমরা ধরছি একটি ফাইল-ভিত্তিক অ্যাপ যেখানে ডেটা TypeScript ব্যবহার করে Firebase এ সংরক্ষিত হবে।

✔ Example: Firebase Storage Rules

service firebase.storage {
  match /b/{bucket}/o {
    match /user_uploads/{userId}/{allPaths=**} {
      allow read, write: if request.auth != null && request.auth.uid == userId;
    }
  }
}
  

এখানে user_uploads ফোল্ডারের প্রত্যেকটি ফাইল কেবল সেই ব্যবহারকারী পড়তে বা লিখতে পারবে যিনি লগইন করেছেন। এটি user-level security নিশ্চিত করে।


📌 ৩. React Native (TypeScript) কোড উদাহরণ

ধরুন আমাদের একটি ফাইল আপলোড ফাংশন আছে, আমরা লগইন করা ব্যবহারকারীর জন্য ফাইল আপলোড করবো:

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

const uploadFile = async (fileUri: string) => {
  try {
    const userId = auth().currentUser?.uid;
    if (!userId) throw new Error('User not logged in');

    const fileName = fileUri.split('/').pop();
    const storageRef = storage().ref(`user_uploads/${userId}/${fileName}`);

    await storageRef.putFile(fileUri);
    const downloadURL = await storageRef.getDownloadURL();

    console.log('ফাইল আপলোড হয়েছে:', downloadURL);
  } catch (error) {
    console.error('ফাইল আপলোডে সমস্যা:', error);
  }
};
  

এখানে আমরা auth().currentUser?.uid ব্যবহার করেছি যাতে নিশ্চিত করা যায় যে শুধুমাত্র নির্দিষ্ট ব্যবহারকারীই তার ফোল্ডারে ফাইল আপলোড করতে পারবে। এটি Firebase Storage Rules এর সাথে সামঞ্জস্যপূর্ণ।


📌 ৪. আউটপুট পরীক্ষা (Output)

যদি ব্যবহারকারী সঠিকভাবে লগইন করে এবং ফাইল আপলোড করে, তাহলে কনসোলে দেখতে পাবেন:

ফাইল আপলোড হয়েছে: https://firebasestorage.googleapis.com/...
  

যদি ব্যবহারকারী লগইন না করে ফাইল আপলোড করার চেষ্টা করে, তাহলে Firebase Security Rules block করবে এবং ত্রুটি দেখাবে:

ফাইল আপলোডে সমস্যা: FirebaseError: [storage/unauthorized] User is not authorized to perform the desired action.
  

📌 ৫. Best Practices

  • প্রত্যেকটি ইউজার-ফোল্ডার আলাদা রাখুন।
  • Security Rules আপডেট করলে অবশ্যই Firebase Emulator ব্যবহার করে টেস্ট করুন।
  • আপলোডের আগে client-side validation করুন।
  • Read/Write permissions সর্বদা auth.uid এর সাথে সংযুক্ত রাখুন।
  • প্রোডাকশন বিল্ডে লগইন ও Rules consistency চেক করুন।

✅ এই পদ্ধতিতে আপনি File-based React Native অ্যাপে নিরাপদভাবে Firebase Security Rules ব্যবহার করতে পারবেন। ব্যবহারকারী শুধুমাত্র তার নিজস্ব ফাইল পড়তে ও আপলোড করতে পারবে। এটি আপনার অ্যাপকে নিরাপদ ও প্রফেশনাল করে তোলে।

👼 Quiz
/

লোড হচ্ছে...