Firebase Firestore Database

Firebase Firestore Database

Cloud Firestore হলো Firebase এর Cloud-based NoSQL Database যা Real-time, Fast এবং Highly Scalable। React Native অ্যাপের মধ্যে Firestore ব্যবহার করে সহজেই ডেটা Store, Read, Update এবং Delete করা যায়। নিচে সম্পূর্ণ সেটআপ, CRUD অপারেশন, Listener এবং Best Practices বিস্তারিত বাংলায় দেওয়া হলো।

🔹 Firestore Database কি?

Firestore হলো একটি NoSQL Document Database যেখানে ডেটা সংরক্ষণ হয়:

  • Collection → Document → Fields আকারে
  • Real-time Listener সহ ডেটা Live Update হয়
  • Offline Cache ব্যাবহার করে নেট না থাকলেও ডেটা Available
  • Auto Scaling, High Performance এবং Flexible Structure

🔹 Firestore Data Structure বোঝা

➡ Collection: "users"
     ➝ Document: "userID"
          ➝ fields: { name: "Prabir", age: 22 }
    

অর্থাৎ Firestore ডেটা SQL টেবিলের মতো নয়। এখানে Document-based Flexible Structure ব্যবহার হয়।

🔹 Step 1: Firestore Installation

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

🔹 Step 2: Firestore এ ডেটা Add (Create)

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

export const addUser = async () => {
  try {
    await firestore()
      .collection('users')
      .add({
        name: 'Rahim',
        age: 20,
        createdAt: firestore.FieldValue.serverTimestamp()
      });
    console.log('User Added');
  } catch (error) {
    console.log(error);
  }
};
    

👉 এখানে Firestore নিজেই Auto-ID তৈরি করবে।

🔹 Step 3: নির্দিষ্ট Document ID দিয়ে ডেটা Set

firestore()
  .collection('users')
  .doc('user123')
  .set({
    name: 'Karim',
    age: 25
  });
    

👉 এটি নির্দিষ্ট ID সহ Document তৈরি বা Replace করে।

🔹 Step 4: ডেটা Fetch করা (Read)

✔ Single Document Read

const user = await firestore()
  .collection('users')
  .doc('user123')
  .get();

console.log(user.data());

✔ All Documents Read

const users = await firestore()
  .collection('users')
  .get();

users.forEach(doc => {
  console.log(doc.id, doc.data());
});

🔹 Step 5: ডেটা Update করা

firestore()
  .collection('users')
  .doc('user123')
  .update({
    age: 30
  });

🔹 Step 6: ডেটা Delete করা

firestore()
  .collection('users')
  .doc('user123')
  .delete();

🔹 Step 7: Real-time Listener (Live ডেটা পরিবর্তন)

Firestore এর সবচেয়ে শক্তিশালী ফিচার হলো Real-time Updates।

firestore()
  .collection('users')
  .onSnapshot(querySnapshot => {
    const users = [];
    querySnapshot.forEach(doc => {
      users.push({ id: doc.id, ...doc.data() });
    });
    console.log(users);
  });

👉 ডাটাবেজে পরিবর্তন হলেই UI অটোমেটিক আপডেট হবে।

🔹 Step 8: Firestore Queries

✔ age > 20 এমন ইউজার ফেচ করা

const result = await firestore()
  .collection('users')
  .where('age', '>', 20)
  .get();

✔ নাম অনুযায়ী সাজানো ডেটা

firestore()
  .collection('users')
  .orderBy('name', 'asc')
  .get();

🔹 Step 9: Offline Support (Without Internet কাজ করবে)

Firestore default ভাবে Offline Cache সক্রিয় থাকে।

firestore().settings({ persistence: true });

👉 ইউজার ইন্টারনেট ছাড়াও ডেটা দেখতে পারবে।

🔹 Step 10: Firestore Security Rules

Everyone can read/write → ❌ খুবই ঝুঁকিপূর্ণ!

allow read, write: if true;

✔ সঠিক Rule:

allow read, write: if request.auth != null;

👉 শুধুমাত্র লগইনকৃত ইউজার ডেটা ব্যবহার করতে পারবে।

✔ Firestore কোথায় ব্যবহার হয়?

  • Chat Application (Real-time Messages)
  • E-commerce Products Database
  • Learning App (Courses + Quiz)
  • Social Media Posts
  • Student Management System

✔ উপসংহার

Firestore হলো React Native অ্যাপের জন্য এক অত্যন্ত শক্তিশালী ও Flexible Database. Real-time Listener, Offline Access এবং Easy Querying এর জন্য এটি Beginner থেকে Advanced সব ধরনের অ্যাপেই জনপ্রিয়।

👼 Quiz
/

লোড হচ্ছে...