External API থেকে ডেটা ফেচ করা এবং ব্যবস্থাপনা করা

Firebase এবং Third-party API ইন্টিগ্রেশন - ফায়ারবেস (Firebase) - Web Development

283

Firebase হল একটি শক্তিশালী প্ল্যাটফর্ম যা অ্যাপ্লিকেশন ডেভেলপমেন্টে সহজ এবং কার্যকরী সমাধান প্রদান করে। তবে, অনেক সময় আমাদের Firebase ডাটাবেসের বাইরে থেকে, অর্থাৎ External API (যেমন RESTful API বা GraphQL API) থেকে ডেটা ফেচ করার প্রয়োজন হয়। এই ডেটা ফেচ করার প্রক্রিয়া Firebase এর সাথে সংযুক্ত হয়ে আরও শক্তিশালী ডেটা ব্যবস্থাপনা করতে সাহায্য করে।

এখানে, Firebase অ্যাপ্লিকেশনে External API থেকে ডেটা ফেচ করার এবং তা Firebase ডাটাবেসে সঞ্চয় বা ব্যবস্থাপনার প্রক্রিয়া তুলে ধরা হবে।


External API থেকে ডেটা ফেচ করা

External API থেকে ডেটা ফেচ করার জন্য সাধারণত HTTP requests পাঠানো হয়। Firebase এ External API কল করতে সাধারণত Firebase Functions, Firestore, বা Realtime Database এর সাথে একত্রে কাজ করা হয়।


১. Firebase Cloud Functions ব্যবহার করে External API থেকে ডেটা ফেচ করা

Firebase Cloud Functions, Firebase প্ল্যাটফর্মের একটি serverless ফিচার যা আপনাকে সার্ভার সাইড লজিক পরিচালনা করতে সাহায্য করে। আপনি Cloud Functions এর মাধ্যমে External API থেকে ডেটা ফেচ করতে পারেন এবং তা Firebase ডাটাবেসে সংরক্ষণ করতে পারেন।

Cloud Function সেটআপ করা:

প্রথমে, Firebase CLI ইনস্টল করতে হবে এবং Firebase প্রজেক্টের সাথে যুক্ত হতে হবে।

  1. Firebase CLI ইনস্টল করুন:

    npm install -g firebase-tools
    
  2. প্রজেক্টে Firebase Functions ইনিশিয়ালাইজ করুন:

    firebase init functions
    
  3. API কল করার জন্য প্রয়োজনীয় লাইব্রেরি ইনস্টল করুন: Firebase Functions এ External API থেকে ডেটা ফেচ করতে axios বা node-fetch প্যাকেজ ব্যবহার করতে পারেন।

    cd functions
    npm install axios
    

২. External API কল এবং ডেটা Firestore-এ সেভ করা

এখন, Firebase Function ব্যবহার করে API থেকে ডেটা ফেচ করে Firestore-এ সেভ করা হবে।

const functions = require('firebase-functions');
const axios = require('axios');
const admin = require('firebase-admin');

admin.initializeApp();

exports.fetchExternalData = functions.https.onRequest(async (req, res) => {
    try {
        // External API থেকে ডেটা ফেচ করা
        const response = await axios.get('https://api.example.com/data');
        
        // API থেকে পাওয়া ডেটা Firestore-এ সেভ করা
        const data = response.data;
        
        const db = admin.firestore();
        await db.collection('externalData').add(data);
        
        // Success response
        res.status(200).send('Data fetched and saved successfully');
    } catch (error) {
        // Error response
        res.status(500).send('Error fetching data: ' + error.message);
    }
});

এখানে axios.get() ব্যবহার করে একটি External API থেকে ডেটা ফেচ করা হয়েছে এবং তা Firestore-এ সেভ করা হয়েছে।


৩. External API থেকে ডেটা ফেচ করে Firestore-এ স্টোর করা

আপনি যদি API থেকে নিয়মিত ডেটা ফেচ করতে চান, তাহলে Firebase Functions-এ কিছু সময় অন্তর cron job চালানোর ব্যবস্থা করতে পারেন। উদাহরণস্বরূপ, Firebase Functions-এ pubsub ট্রিগার ব্যবহার করে নির্দিষ্ট সময়ে API কল করতে পারেন।

const functions = require('firebase-functions');
const axios = require('axios');
const admin = require('firebase-admin');
const { google } = require('googleapis');

admin.initializeApp();

// প্রতিদিন API কল করার জন্য PubSub trigger ব্যবহার করা
exports.scheduledFunction = functions.pubsub.schedule('every 24 hours').onRun(async (context) => {
    try {
        const response = await axios.get('https://api.example.com/data');
        const data = response.data;

        const db = admin.firestore();
        await db.collection('externalData').doc('dailyData').set(data);

        console.log('Data fetched and saved to Firestore');
    } catch (error) {
        console.error('Error fetching data', error);
    }
});

এখানে functions.pubsub.schedule('every 24 hours') দিয়ে API কল প্রতিদিন অটোভাবে চালানো হয়েছে।


Firebase Firestore বা Realtime Database-এ ডেটা সেভ করা

External API থেকে ফেচ করা ডেটা Firebase Firestore বা Realtime Database-এ সেভ করার জন্য আপনি সহজেই set(), add() বা update() ফাংশন ব্যবহার করতে পারেন।

Firestore এ ডেটা সেভ করা:

const db = admin.firestore();

// Firestore এ ডেটা সেভ করা
await db.collection('externalData').add({
    apiData: data
});

Realtime Database এ ডেটা সেভ করা:

const db = admin.database();

// Realtime Database এ ডেটা সেভ করা
await db.ref('externalData').set({
    apiData: data
});

৪. ডেটা Firebase এ ফেচ করা এবং প্রদর্শন করা

Firebase ডাটাবেসে ডেটা সেভ করার পর, আপনি Firebase SDK ব্যবহার করে অ্যাপ্লিকেশন থেকে ডেটা ফেচ করতে পারেন।

অ্যান্ড্রয়েডে ডেটা ফেচ করা:

FirebaseFirestore db = FirebaseFirestore.getInstance();
db.collection("externalData")
    .get()
    .addOnSuccessListener(queryDocumentSnapshots -> {
        for (DocumentSnapshot document : queryDocumentSnapshots) {
            // ডেটা অ্যাক্সেস করা
            Map<String, Object> data = document.getData();
            // ডেটা UI তে প্রদর্শন করা
        }
    })
    .addOnFailureListener(e -> {
        // ত্রুটি হ্যান্ডলিং
    });

আইওএসে ডেটা ফেচ করা:

let db = Firestore.firestore()
db.collection("externalData").getDocuments { (querySnapshot, error) in
    if let error = error {
        print("Error getting documents: \(error)")
    } else {
        for document in querySnapshot!.documents {
            // ডেটা অ্যাক্সেস করা
            let data = document.data()
            // ডেটা UI তে প্রদর্শন করা
        }
    }
}

সারাংশ

Firebase Cloud Functions ব্যবহার করে আপনি সহজেই External API থেকে ডেটা ফেচ করে তা Firebase ডাটাবেসে (Firestore বা Realtime Database) সেভ করতে পারেন। এটি অ্যাপ্লিকেশনগুলির জন্য একটি শক্তিশালী ডেটা ফেচিং এবং ব্যবস্থাপনা পদ্ধতি প্রদান করে। Firebase Functions-এ API কলের মাধ্যমে আপনি নিয়মিত ডেটা ফেচ করে তা ডাটাবেসে সংরক্ষণ করতে পারবেন, যা রিয়েল-টাইম ডেটা সিঙ্ক্রোনাইজেশন এবং অন্যান্য Firebase ফিচারের সাথে একত্রে কাজ করবে।

Content added By
Promotion

Are you sure to start over?

Loading...