ম্যানেজমেন্ট REST API ব্যবহার করে একটি ফায়ারবেস প্রকল্প সেট আপ এবং পরিচালনা করুন

ফায়ারবেস ম্যানেজমেন্ট REST API একটি প্রোজেক্টের Firebase রিসোর্স এবং ফায়ারবেস অ্যাপস সহ Firebase প্রোজেক্টগুলির প্রোগ্রাম্যাটিক সেটআপ এবং পরিচালনা সক্ষম করে।

এই ওভারভিউটি একটি বিদ্যমান Google Cloud প্রকল্পে Firebase সংস্থান এবং অ্যাপ যোগ করার জন্য সাধারণ কর্মপ্রবাহ বর্ণনা করে যা এখনও Firebase পরিষেবাগুলি ব্যবহার করে না।

আপনি এই পৃষ্ঠার নির্দিষ্ট বিভাগে যেতে পারেন যদি আপনি চান:

এই পৃষ্ঠায় যেকোনো পদক্ষেপ অনুসরণ করার আগে, নিশ্চিত করুন যে আপনি API সক্ষম করেছেন

Firebase Management API-এর অ্যাক্সেস ম্যানেজমেন্ট সম্পর্কে তথ্যের জন্য, Cloud Identity Access Management (IAM) API ডকুমেন্টেশন দেখুন।

আপনি শুরু করার আগে

আপনি শুরু করার আগে, আপনাকে আপনার Google Cloud প্রকল্পের জন্য ব্যবস্থাপনা API সক্ষম করতে হবে এবং আপনার অ্যাক্সেস টোকেন তৈরি করতে হবে।

আপনার Google Cloud প্রকল্পের জন্য ব্যবস্থাপনা REST API সক্ষম করুন৷

যদি আপনি ইতিমধ্যেই না করে থাকেন, তাহলে আপনার Google Cloud প্রকল্পের সাথে ব্যবহারের জন্য আপনাকে Firebase Management API সক্ষম করতে হবে।

  1. Google APIs কনসোলে Firebase Management API পৃষ্ঠাটি খুলুন।
  2. অনুরোধ করা হলে, আপনার Google Cloud প্রকল্প নির্বাচন করুন।
  3. Firebase Management API পৃষ্ঠায় Enable এ ক্লিক করুন।

আপনার API অ্যাক্সেস টোকেন তৈরি করুন

এখানে Node.js এর জন্য একটি উদাহরণ রয়েছে যা আপনার অ্যাক্সেস টোকেন পুনরুদ্ধার করে।

প্রথমত, আপনি যদি Google Cloud পরিবেশে না থাকেন, তাহলে আপনার পরিষেবা অ্যাকাউন্ট কী-এর পথে GOOGLE_APPLICATION_CREDENTIALS পরিবেশ পরিবর্তনশীল সেট করুন৷

লিনাক্স বা ম্যাকোস

export GOOGLE_APPLICATION_CREDENTIALS="/path/to/your/service-account-file.json"

উইন্ডোজ

PowerShell এর সাথে:

$env:GOOGLE_APPLICATION_CREDENTIALS="C:\path\to\your\service-account-file.json"

তারপর, আপনার পরিষেবা অ্যাকাউন্টের শংসাপত্রগুলি থেকে একটি অ্যাক্সেস টোকেন পেতে Firebase অ্যাডমিন SDK ব্যবহার করুন:

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

function getAccessToken() {
  return admin.credential.applicationDefault().getAccessToken()
      .then(accessToken => {
        return accessToken.access_token;
      })
      .catch(err => {
        console.error('Unable to get access token');
        console.error(err);
      });
}

আপনার প্রকল্পের সম্পদ নাম খুঁজুন

আপনি Google Cloud প্রকল্পগুলি খুঁজে পেতে পারেন যা Firebase পরিষেবাগুলি যোগ করার জন্য উপলব্ধ৷

অনুরোধ

কল availableProjects.list . এই কলের অনুরোধের অংশটি অবশ্যই খালি হতে হবে৷

উপলব্ধ Google Cloud প্রকল্পগুলির একটি তালিকা অনুরোধ করার জন্য Node.js-এর জন্য এখানে একটি উদাহরণ রয়েছে:

const fetch = require('node-fetch');

async function listProjects() {
  const accessToken = getAccessToken();
  const uri = 'https://firebase.googleapis.com/v1beta1/availableProjects';
  const options = {
    method: 'GET',
    headers: {
      'Authorization': 'Bearer ' + accessToken,
    },
  };

  try {
    const rawResponse = await fetch(uri, options);
    const resp = await rawResponse.json();
    const projects = resp['projectInfo'];
    console.log('Project total: ' + projects.length);
    console.log('');
    for (let i in projects) {
      const project = projects[i];
      console.log('Project ' + i);
      console.log('ID: ' + project['project']);
      console.log('Display Name: ' + project['displayName']);
      console.log('');
    }
  } catch(err) {
    console.error(err);
  }
}

ফলাফল

availableProjects.list এ কলের প্রতিক্রিয়া বডিতে ProjectInfo অবজেক্টের একটি তালিকা থাকে। যদি প্রকল্পগুলির তালিকাটি খুব দীর্ঘ হয়, তবে প্রতিক্রিয়া বডিতে একটি nextPageToken থাকে যা আপনি প্রকল্পগুলির পরবর্তী পৃষ্ঠা পেতে একটি ক্যোয়ারী প্যারামিটার হিসাবে ব্যবহার করতে পারেন।

এখানে একটি availableProjects.list কলের একটি উদাহরণ প্রতিক্রিয়া বডি রয়েছে:

{
  "projectInfo": [
    {
      "project": "projects/first-cloud-project",
      "displayName": "First Cloud Project"
    },
    {
      "project": "projects/second-cloud-project",
      "displayName": "Second Cloud Project"
    }
  ]
}

এই উদাহরণের প্রতিক্রিয়াটিতে দুটি Google Cloud প্রকল্প রয়েছে যেগুলিতে Firebase পরিষেবাগুলি যোগ করা যেতে পারে৷ মনে রাখবেন যে project ক্ষেত্রটি একটি প্রকল্পের জন্য বিশ্বব্যাপী অনন্য সম্পদের নাম প্রদান করে।

আপনি Firebase পরিষেবা যোগ করতে বা আপনার প্রকল্পে অ্যাপ যোগ করতে availableProjects.list থেকে প্রতিক্রিয়াতে তালিকাভুক্ত যে কোনো project মান ব্যবহার করতে পারেন।

পরবর্তী বিভাগে, আমরা projects/first-gcp-project রিসোর্স নাম ব্যবহার করে First Cloud Project ফায়ারবেস পরিষেবা যোগ করব।

আপনার প্রকল্পে Firebase পরিষেবা যোগ করুন

Google Cloud প্রকল্পগুলি Firebase দ্বারা প্রদত্ত পরিষেবাগুলির সুবিধা নিতে পারে৷ এই বিভাগে, আপনি শিখবেন কীভাবে আপনার বিদ্যমান Google Cloud প্রকল্পে প্রোগ্রামগতভাবে Firebase পরিষেবাগুলি যোগ করতে হয়। মনে রাখবেন যে আপনি Firebase কনসোলে আপনার বিদ্যমান Google Cloud প্রকল্পে Firebase পরিষেবা যোগ করতে পারেন।

অনুরোধ

কল projects.addFirebase . অ্যাডফায়ারবেস। এই কলের অনুরোধের অংশটি অবশ্যই খালি হতে হবে৷

আপনার Google Cloud প্রকল্পে Firebase পরিষেবা যোগ করার জন্য Node.js-এর একটি উদাহরণ এখানে দেওয়া হল:

const fetch = require('node-fetch');

async function addFirebase(projectId) {
  const accessToken = getAccessToken();
  const uri = 'https://firebase.googleapis.com/v1beta1/projects/' + projectId + ':addFirebase';
  const options = {
    method: 'POST',
    // Use a manual access token here since explicit user access token is required.
    headers: {
      'Authorization': 'Bearer ' + accessToken,
    },
  };

  try {
    const rawResponse = await fetch(uri, options);
    const resp = await rawResponse.json();
    console.log(resp);
  } catch(err) {
    console.error(err['message']);
  }
}

ফলাফল

projects.addFirebase এ একটি কলের ফলাফল হল একটি Operation । আপনার প্রোজেক্টের জন্য অন্যান্য ফায়ারবেস-সম্পর্কিত এন্ডপয়েন্টে কল করার আগে, অপারেশনটি সফল হতে হবে।

অপারেশনটি সফল হয়েছে কিনা তা পরীক্ষা করার জন্য, আপনি operations.get কল করতে পারেন যতক্ষণ না done মান true হয় এবং এর response FirebaseProject টাইপের হয়। অপারেশন ব্যর্থ হলে, এর error google.rpc.Status এ সেট করা হয়।

এখানে একটি operations.get কলের প্রতিক্রিয়া বডি রয়েছে:

{
  "name": "operations/...",
  "done": true,
  "response": {
    "@type": "type.googleapis.com/google.firebase.service.v1beta1.FirebaseProject",
    "projectId": "first-cloud-project",
    "projectNumber": "...",
    "displayName": "First Cloud Project",
    "name": "projects/first-cloud-project",
    "resources": {
      "hostingSite": "first-cloud-project",
      "realtimeDatabaseInstance": "first-cloud-project"
    }
  }
}

যেহেতু done true এবং response ধরনটি একটি FirebaseProject , Google Cloud প্রকল্পে এখন Firebase পরিষেবা রয়েছে৷ প্রতিক্রিয়াটিতে আপনার নতুন তৈরি FirebaseProject সম্পর্কে অন্যান্য দরকারী তথ্যও রয়েছে, যেমন এর projectNumber এবং এর ডিফল্ট resourcesOperation সম্পূর্ণ হওয়ার পরে স্বয়ংক্রিয়ভাবে মুছে ফেলা হয়।

আপনার প্রকল্পে Firebase অ্যাপ যোগ করুন

iOS, Android এবং ওয়েব অ্যাপ সহ অনেকগুলি বিভিন্ন অ্যাপ FirebaseProject ব্যবহার করতে পারে। এই বিভাগে, আপনি শিখবেন কিভাবে আপনার বিদ্যমান FirebaseProject এ প্রোগ্রামগতভাবে Firebase অ্যাপ যোগ করতে হয়। মনে রাখবেন যে আপনি Firebase কনসোলে আপনার বিদ্যমান Firebase প্রকল্পে Firebase Apps যোগ করতে পারেন।

আপনার Firebase প্রোজেক্টে যোগ করতে Firebase অ্যাপের একটি ধরন বেছে নিন।

আপনি আপনার বিদ্যমান Firebase প্রকল্পে একটি Firebase Android অ্যাপ যোগ করতে পারেন।

অনুরোধ

কল করুন projects.androidApps.create । আপনার অনুরোধের অংশটি কীভাবে তৈরি করবেন তা এখানে:

  • প্রয়োজনীয়:

    • packageName : অ্যান্ড্রয়েড অ্যাপের ক্যানোনিকাল প্যাকেজ নাম যেমনটি Google Play বিকাশকারী কনসোলে প্রদর্শিত হবে৷
  • ঐচ্ছিক, কিন্তু প্রস্তাবিত:

    • displayName : অ্যাপটির ব্যবহারকারীর দ্বারা নির্ধারিত ডিসপ্লে নাম। এই মানটি Firebase কনসোলে পরে আপনার অ্যাপ খুঁজে পাওয়ার জন্য উপযোগী।

আমাদের উদাহরণের জন্য অনুরোধের অংশে, আমরা packageName এবং displayName ব্যবহার করব:

{
  "displayName": "My Firebase Android App"
  "packageName": "com.firebase.android"
}

আপনার Firebase প্রোজেক্টে একটি Firebase Android অ্যাপ যোগ করার জন্য Node.js-এর উদাহরণ এখানে দেওয়া হল:

const fetch = require('node-fetch');

async function addAndroidApp(projectId, displayName, packageName) {
  const accessToken = getAccessToken();
  const uri = 'https://firebase.googleapis.com/v1beta1/projects/' + projectId + '/androidApps';
  const options = {
    method: 'POST',
    headers: {
      'Authorization': 'Bearer ' + accessToken,
    },
    body: JSON.stringify({
      'displayName': displayName,
      'packageName': packageName
    }),
  };

  try {
    const rawResponse = await fetch(uri, options);
    const resp = await rawResponse.json();
    console.log(resp);
  } catch(err) {
    console.error(err['message']);
  }
}

ফলাফল

projects.androidApps.create এ কলের ফলাফল হল একটি Operation । আপনার প্রোজেক্টের জন্য অন্যান্য ফায়ারবেস-সম্পর্কিত এন্ডপয়েন্টে কল করার আগে, অপারেশনটি সফল হতে হবে।

অপারেশনটি সফল হয়েছে কিনা তা পরীক্ষা করার জন্য, আপনি operations.get কল করতে পারেন যতক্ষণ না done মান true হয় এবং এর response AndroidApp টাইপ হয়। অপারেশন ব্যর্থ হলে, এর error google.rpc.Status এ সেট করা হয়।

এখানে একটি operations.get কলের প্রতিক্রিয়া বডি রয়েছে:

{
  "name": "operations/...",
  "done": true,
  "response": {
    "@type": "type.googleapis.com/google.firebase.service.v1beta1.AndroidApp",
    "name": "projects/first-cloud-project/androidApps/...",
    "appId": "...",
    "displayName": "My Firebase Android App",
    "projectId": "first-cloud-project",
    "packageName": "com.firebase.android"
  }
}

যেহেতু done true এবং response ধরনটি একটি AndroidApp , FirebaseProject এখন একটি AndroidApp রয়েছে৷ প্রতিক্রিয়াটিতে আপনার নতুন তৈরি Firebase Android অ্যাপ সম্পর্কে অন্যান্য দরকারী তথ্যও রয়েছে, যেমন অনন্য Firebase appIdOperation সম্পূর্ণ হওয়ার পরে স্বয়ংক্রিয়ভাবে মুছে ফেলা হয়।

SHA সার্টিফিকেট যোগ করুন

আপনি projects.androidApps.sha.create কল করে যেকোনও বিদ্যমান Firebase Android অ্যাপে SHA সার্টিফিকেট যোগ করতে পারেন। এই পদ্ধতি কলের অনুরোধের অংশে একটি খালি name ক্ষেত্র থাকতে হবে। এই কলের ফলাফল হল ShaCertificate এর একটি সদ্য তৈরি উদাহরণ।

projects.androidApps.sha.create কল করার সময়, আপনাকে একটি বৈধ SHA-1 বা SHA-256 সার্টিফিকেট হ্যাশ প্রদান করতে হবে। আপনি gradle signingReport কমান্ডের সাথে আপনার স্বাক্ষর শংসাপত্রের SHA হ্যাশ পেতে পারেন:

./gradlew signingReport

আরও তথ্যের জন্য, অ্যান্ড্রয়েডের জন্য Google API এ যান।

আপনি একটি বিদ্যমান Google Analytics অ্যাকাউন্টকে আপনার বিদ্যমান FirebaseProject প্রোগ্রামে লিঙ্ক করতে পারেন। মনে রাখবেন যে আপনি আপনার প্রজেক্ট সেটিংসের ইন্টিগ্রেশন ট্যাবে আপনার বিদ্যমান Firebase প্রোজেক্টটিকে Google Analytics-এর সাথে লিঙ্ক করতে পারেন।

projects.addGoogleAnalytics এ কল করার জন্য একটি analytics_resource প্রয়োজন, যা একটি analyticsAccountId বা একটি analyticsPropertyId হতে পারে :

  • একটি বিদ্যমান analyticsAccountId উল্লেখ করুন নির্দিষ্ট অ্যাকাউন্টের মধ্যে একটি নতুন Google Analytics প্রপার্টি বিধান করতে এবং নতুন প্রপার্টিটিকে আপনার Firebase প্রোজেক্টের সাথে যুক্ত করতে।

  • আপনার Firebase প্রোজেক্টের সাথে Google Analytics প্রপার্টি অ্যাসোসিয়েট করার জন্য একটি বিদ্যমান analyticsPropertyId উল্লেখ করুন।

আপনি Google Analytics ওয়েবসাইটে আপনার analyticsAccountId এবং বিদ্যমান যেকোনো analyticsPropertyId উভয়ই খুঁজে পেতে পারেন।

আপনি যখন projects.addGoogleAnalytics কল করুন।GoogleAnalytics:

  1. প্রথম চেকটি নির্ধারণ করে যে Google Analytics প্রপার্টিতে বিদ্যমান কোনো ডেটা স্ট্রীম আপনার FirebaseProject এর কোনো বিদ্যমান ফায়ারবেস অ্যাপের সাথে মিল আছে কিনা ( packageName বা ডাটা স্ট্রিমের সাথে যুক্ত bundleId উপর ভিত্তি করে)। তারপর, প্রযোজ্য হিসাবে, ডেটা স্ট্রীম এবং অ্যাপস লিঙ্ক করা হয়। মনে রাখবেন যে এই স্বয়ংক্রিয় লিঙ্কিং শুধুমাত্র Android Apps এবং iOS Apps এর ক্ষেত্রে প্রযোজ্য৷

  2. যদি আপনার ফায়ারবেস অ্যাপের জন্য কোনো সংশ্লিষ্ট ডেটা স্ট্রিম না পাওয়া যায়, তাহলে আপনার প্রতিটি ফায়ারবেস অ্যাপের জন্য Google Analytics প্রপার্টিতে নতুন ডেটা স্ট্রিমের ব্যবস্থা করা হয়েছে। মনে রাখবেন যে একটি ওয়েব অ্যাপের জন্য একটি নতুন ডেটা স্ট্রীম সর্বদা বিধান করা হয় যদিও এটি আগে আপনার অ্যানালিটিক্স প্রপার্টিতে ডেটা স্ট্রিমের সাথে যুক্ত ছিল।

অ্যানালিটিক্স ডকুমেন্টেশনে Google অ্যানালিটিক্স অ্যাকাউন্টের শ্রেণিবিন্যাস এবং গঠন সম্পর্কে আরও জানুন।

অনুরোধ

projects.addGoogleAnalytics কল করুন।GoogleAnalytics যোগ করুন।

আমাদের project.addGoogleAnalytics এ উদাহরণ কলের অনুরোধের বডিতে, আমরা আমাদের Google Analytics অ্যাকাউন্ট analyticsAccountId নির্দিষ্ট করব। এই কলটি একটি নতুন Google Analytics সম্পত্তির ব্যবস্থা করবে এবং FirebaseProject সাথে নতুন সম্পত্তি যুক্ত করবে।

{
  "analyticsAccountId": "<your-google-analytics-account-id>"
}

একটি Google Analytics অ্যাকাউন্টের সাথে একটি Firebase প্রকল্প লিঙ্ক করার জন্য Node.js-এর উদাহরণ এখানে দেওয়া হল:

const fetch = require('node-fetch');

async function addGoogleAnalytics(projectId, analyticsAccountId) {
  const accessToken = getAccessToken();
  const uri = 'https://firebase.googleapis.com/v1beta1/projects/' + projectId + ':addGoogleAnalytics';
  const options = {
    method: 'POST',
    headers: {
      'Authorization': 'Bearer ' + accessToken,
    },
    body: JSON.stringify({
      'analyticsAccountId': analyticsAccountId
    }),
  };

  try {
    const rawResponse = await fetch(uri, options);
    const resp = await rawResponse.json();
    console.log(resp);
  } catch(err) {
    console.error(err['message']);
  }
}

ফলাফল

projects.addGoogleAnalytics এ কলের ফলাফল হল একটি Operation । আপনার প্রোজেক্টের জন্য অন্যান্য ফায়ারবেস-সম্পর্কিত এন্ডপয়েন্টে কল করার আগে, অপারেশনটি সফল হতে হবে।

অপারেশন সফল হয়েছে কিনা তা পরীক্ষা করার জন্য, আপনি operations.get কল করতে পারেন যতক্ষণ না done মান true হয় এবং response analyticsDetails টাইপ হয়। অপারেশন ব্যর্থ হলে, এর error google.rpc.Status এ সেট করা হয়।

এখানে একটি operations.get কলের প্রতিক্রিয়া বডি রয়েছে:

{
  "name": "operations/...",
  "none": true,
  "response": {
    "@type": "type.googleapis.com/google.firebase.service.v1beta1.AnalyticsDetails",
    "analyticsProperty": [
      {
        "id": "...",
        "displayName": "..."
      }
    ],
    "streamMappings": [
      {
        "app": "...",
        "streamId": "...",
        "measurementId": "..."
      }
    ]
  }
}

যেহেতু done সত্য এবং response ধরন হল analyticsDetails , FirebaseProject এখন নির্দিষ্ট Google Analytics অ্যাকাউন্টের সাথে লিঙ্ক করা হয়েছে। Operation সম্পূর্ণ হওয়ার পরে স্বয়ংক্রিয়ভাবে মুছে ফেলা হয়।