ম্যানেজমেন্ট REST API ব্যবহার করে Firebase প্রোজেক্ট সেট-আপ ও ম্যানেজ করা

Firebase Management REST API-এর মাধ্যমে Firebase প্রোজেক্টের প্রোগ্রাম্যাটিক সেট-আপ ও ম্যানেজমেন্ট করা যায়, যার মধ্যে প্রোজেক্টের Firebase রিসোর্স ও Firebase অ্যাপ অন্তর্ভুক্ত।

এই ওভারভিউতে, আগে থেকে থাকা Google Cloud প্রোজেক্টে Firebase রিসোর্স ও অ্যাপ যোগ করার সাধারণ ওয়ার্কফ্লো বর্ণনা করা হয়েছে, যেখানে এখনও Firebase পরিষেবা ব্যবহার করা হয় না।

আপনি যদি শুধু এগুলি করতে চান, তাহলে এই পৃষ্ঠার নির্দিষ্ট বিভাগে সরাসরি যেতে পারেন:

এই পৃষ্ঠার কোনও ধাপ অনুসরণ করার আগে, আপনি যে API চালু করেছেন তা নিশ্চিত করুন।

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

শুরু করার আগে

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

আপনার Google Cloud প্রোজেক্টের জন্য ম্যানেজমেন্ট REST API চালু করুন

আপনি যদি আগে থেকে না করে থাকেন, তাহলে আপনার Google Cloud প্রোজেক্টের সাথে ব্যবহার করার জন্য Firebase Management API চালু করতে হবে।

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

আপনার API অ্যাক্সেস টোকেন জেনারেট করুন

Node.js-এর জন্য এখানে একটি উদাহরণ দেওয়া হল যা আপনার অ্যাক্সেস টোকেন ফিরিয়ে আনে।

প্রথমে, আপনি Google Cloud এনভায়রনমেন্টে না থাকলে, GOOGLE_APPLICATION_CREDENTIALS এনভায়রনমেন্ট ভেরিয়েবলকে আপনার পরিষেবা অ্যাকাউন্ট কী-এর পাথে সেট করুন।

Linux বা macOS

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 ব্যবহার করুন:

import { initializeApp, applicationDefault } from "firebase-admin/app";

initializeApp();

async function getAccessToken() {
  try {
    const accessToken = await applicationDefault().getAccessToken();
    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 পরিষেবা যোগ করব।

আপনার প্রোজেক্টে 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। আপনার প্রোজেক্টের জন্য Firebase-সম্পর্কিত অন্যান্য এন্ডপয়েন্ট কল করার আগে, অপারেশনটি সফল হতে হবে।

অপারেশনটি সফল হয়েছে কিনা তা চেক করতে, আপনি অপারেশনে 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 এবং ডিফল্ট resources। Operation সম্পূর্ণ হওয়ার পরে অটোমেটিক মুছে যায়।

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

iOS, Android ও ওয়েব অ্যাপ সহ বিভিন্ন অ্যাপ FirebaseProject ব্যবহার করতে পারে। এই বিভাগে, আপনি শিখবেন কীভাবে আপনার আগে থেকে থাকা FirebaseProject-এ প্রোগ্রাম্যাটিক্যালি Firebase অ্যাপ যোগ করবেন। মনে রাখবেন, আপনি Firebase কনসোল থেকে আগে থেকে থাকা Firebase প্রোজেক্টে Firebase অ্যাপ যোগ করতে পারবেন।

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

iOS+

আপনার আগে থেকে থাকা Firebase প্রোজেক্টে Firebase iOS অ্যাপ যোগ করতে পারবেন।

অনুরোধ করুন

projects.iosApps.create-এ কল করুন। আপনার অনুরোধের বডি কীভাবে তৈরি করবেন তা এখানে দেওয়া হল:

  • আবশ্যক:

    • bundleId: iOS অ্যাপের ক্যানোনিকাল বান্ডেল আইডি, যেমনটি iOS App Store-এ দেখা যাবে।
  • ঐচ্ছিক, তবে সাজেস্ট করা হয়:

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

    • appStoreId: Apple-এর মাধ্যমে আপনার অ্যাপে অ্যাসাইন করা অটোমেটিক জেনারেট হওয়া Apple আইডি। Apple-এর মাধ্যমে আগে থেকেই অ্যাসাইন করা থাকলে, appStoreId উল্লেখ করুন।

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

{
  "displayName": "My Firebase iOS App",
  "bundleId": "com.firebase.ios"
}

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

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

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

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

ফলাফল

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

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

operations.get কলের রেসপন্স বডি এখানে দেওয়া হল:

{
  "name": "operations/...",
  "done": true,
  "response": {
    "@type": "type.googleapis.com/google.firebase.service.v1beta1.IosApp",
    "name": "projects/first-cloud-project/iosApps/...",
    "appId": "...",
    "displayName": "My Firebase iOS App",
    "projectId": "first-cloud-project",
    "bundleId": "com.firebase.ios"
  }
}

যেহেতু done হল true এবং response-এর ধরন হল IosApp, তাই FirebaseProject-এর এখন IosApp আছে। এছাড়াও, উত্তরে আপনার নতুন তৈরি করা Firebase iOS অ্যাপ সম্পর্কে অন্যান্য প্রয়োজনীয় তথ্য থাকে, যেমন অনন্য Firebase appId। সম্পূর্ণ হওয়ার পরে Operation অটোমেটিক মুছে যায়।

Android

আপনার আগে থেকে থাকা Firebase প্রোজেক্টে Firebase Android অ্যাপ যোগ করতে পারবেন।

অনুরোধ করুন

projects.androidApps.create-এ কল করুন। আপনার অনুরোধের বডি কীভাবে তৈরি করবেন তা এখানে দেওয়া হল:

  • আবশ্যক:

    • packageName: Android অ্যাপের ক্যানোনিকাল প্যাকেজের নাম, যেমনটি Google Play Developer কনসোলে দেখা যাবে।
  • ঐচ্ছিক, তবে সাজেস্ট করা হয়:

    • 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। আপনার প্রোজেক্টের জন্য Firebase-সম্পর্কিত অন্যান্য এন্ডপয়েন্ট কল করার আগে, অপারেশনটি সফল হতে হবে।

অপারেশনটি সফল হয়েছে কিনা তা চেক করতে, আপনি অপারেশনে 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 appId। Operation সম্পূর্ণ হওয়ার পরে অটোমেটিক মুছে যায়।

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

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

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

./gradlew signingReport

আরও তথ্যের জন্য, Android-এর জন্য Google APIs দেখুন।

ওয়েব

আপনার আগে থেকে থাকা Firebase প্রোজেক্টে Firebase ওয়েব অ্যাপ যোগ করতে পারবেন।

অনুরোধ করুন

projects.webApps.create-এ কল করুন। আপনার অনুরোধের বডি কীভাবে তৈরি করবেন তা এখানে দেওয়া হল:

  • ঐচ্ছিক:

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

    • appUrls: অ্যাপটি যেখানে হোস্ট করা হয়েছে সেই সম্পূর্ণ URL। Firebase ওয়েব অ্যাপ Firebase Hosting সাইটের সাথে যুক্ত থাকলে, Firebase অটোমেটিক এইসব ফিল্ড পূরণ করে, তাই আপনার অনুরোধের বডিতে এইসব ফিল্ড খালি রাখুন।

আমাদের উদাহরণের জন্য আমরা অনুরোধের বডিতে শুধু একটি displayName উল্লেখ করব:

{
  "displayName": "My Firebase Web App"
}

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

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

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

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

ফলাফল

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

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

operations.get কলের রেসপন্স বডি এখানে দেওয়া হল:

{
  "name": "operations/...",
  "done": true,
  "response": {
    "@type": "type.googleapis.com/google.firebase.service.v1beta1.WebApp",
    "name": "projects/first-cloud-project/webApps/...",
    "appId": "...",
    "displayName": "My Firebase Web App",
    "projectId": "first-cloud-project"
  }
}

যেহেতু done হল true এবং response ধরন হল WebApp, তাই FirebaseProject-এর এখন WebApp আছে। এছাড়াও, উত্তরে আপনার নতুন তৈরি করা Firebase ওয়েব অ্যাপ সম্পর্কে অন্যান্য প্রয়োজনীয় তথ্য থাকে, যেমন অনন্য Firebase appId। সম্পূর্ণ হওয়ার পরে Operation অটোমেটিক মুছে যায়।

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

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

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

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

আপনি analyticsAccountId এবং আগে থেকে থাকা যেকোনও analyticsPropertyId, Google Analytics ওয়েবসাইট থেকে খুঁজে পাবেন।

আপনি projects.addGoogleAnalytics-কে কল করলে:

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

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

Analytics ডকুমেন্টেশন থেকে Google Analytics অ্যাকাউন্টের ক্রম ও গঠন সম্পর্কে আরও জানুন।

অনুরোধ করুন

projects.addGoogleAnalytics-এ কল করুন।

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। আপনার প্রোজেক্টের জন্য Firebase-সম্পর্কিত অন্যান্য এন্ডপয়েন্ট কল করার আগে, অপারেশনটি সফল হতে হবে।

অপারেশনটি সফল হয়েছে কিনা তা চেক করতে, আপনি অপারেশনে 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 সম্পূর্ণ হওয়ার পরে অটোমেটিক মুছে যায়।