ফায়ারবেস ম্যানেজমেন্ট REST API একটি প্রোজেক্টের Firebase রিসোর্স এবং ফায়ারবেস অ্যাপস সহ Firebase প্রোজেক্টগুলির প্রোগ্রাম্যাটিক সেটআপ এবং পরিচালনা সক্ষম করে।
এই ওভারভিউটি বর্তমানে ফায়ারবেস পরিষেবাগুলি ব্যবহার করে না এমন একটি বিদ্যমান Google ক্লাউড প্রকল্পে Firebase সংস্থান এবং অ্যাপগুলি যোগ করার জন্য সাধারণ কর্মপ্রবাহ বর্ণনা করে৷
আপনি এই পৃষ্ঠার নির্দিষ্ট বিভাগে যেতে পারেন যদি আপনি চান:
- আপনার প্রকল্পে Firebase পরিষেবা যোগ করুন
- আপনার Firebase প্রকল্পে Firebase অ্যাপ যোগ করুন
- একটি Google Analytics অ্যাকাউন্টের সাথে আপনার Firebase প্রকল্প লিঙ্ক করুন
- আপনার প্রকল্পের ডিফল্ট অবস্থান চূড়ান্ত করুন
এই পৃষ্ঠায় যেকোনো পদক্ষেপ অনুসরণ করার আগে, নিশ্চিত করুন যে আপনি API সক্ষম করেছেন ।
Firebase Management API-এর অ্যাক্সেস ম্যানেজমেন্ট সম্পর্কে তথ্যের জন্য, Cloud Identity Access Management (IAM) API ডকুমেন্টেশন দেখুন।
তুমি শুরু করার আগে
আপনি শুরু করার আগে, আপনাকে আপনার Google ক্লাউড প্রকল্পের জন্য ব্যবস্থাপনা API সক্ষম করতে হবে এবং আপনার অ্যাক্সেস টোকেন তৈরি করতে হবে ।
আপনার Google ক্লাউড প্রকল্পের জন্য ব্যবস্থাপনা REST API সক্ষম করুন৷
যদি আপনি ইতিমধ্যেই না করে থাকেন, তাহলে আপনার Google ক্লাউড প্রকল্পের সাথে ব্যবহারের জন্য আপনাকে Firebase Management API সক্ষম করতে হবে।
- Google APIs কনসোলে Firebase Management API পৃষ্ঠাটি খুলুন।
- অনুরোধ করা হলে, আপনার Google ক্লাউড প্রকল্প নির্বাচন করুন।
- Firebase Management API পৃষ্ঠায় Enable এ ক্লিক করুন।
আপনার API অ্যাক্সেস টোকেন তৈরি করুন
এখানে Node.js এর জন্য একটি উদাহরণ রয়েছে যা আপনার অ্যাক্সেস টোকেন পুনরুদ্ধার করে।
প্রথমত, আপনি যদি একটি Google ক্লাউড পরিবেশে না থাকেন, তাহলে আপনার পরিষেবা অ্যাকাউন্ট কী-এর পথে GOOGLE_APPLICATION_CREDENTIALS
পরিবেশ পরিবর্তনশীল সেট করুন৷
লিনাক্স বা ম্যাকোস
export GOOGLE_APPLICATION_CREDENTIALS="/path/to/your/service-account-file.json"
উইন্ডোজ
পাওয়ারশেলের সাথে:
$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 ক্লাউড প্রকল্পগুলি খুঁজে পেতে পারেন যা Firebase পরিষেবাগুলি যোগ করার জন্য উপলব্ধ৷
অনুরোধ
কল availableProjects.list
. এই কলের অনুরোধের অংশটি অবশ্যই খালি হতে হবে৷
উপলব্ধ Google ক্লাউড প্রকল্পগুলির একটি তালিকা অনুরোধ করার জন্য 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 ক্লাউড প্রকল্প রয়েছে যেগুলিতে Firebase পরিষেবাগুলি যোগ করা যেতে পারে৷ মনে রাখবেন যে project
ক্ষেত্রটি একটি প্রকল্পের জন্য বিশ্বব্যাপী অনন্য সম্পদের নাম প্রদান করে।
Firebase পরিষেবা যোগ করতে বা আপনার প্রোজেক্টে অ্যাপ যোগ করতে availableProjects.list
থেকে প্রতিক্রিয়াতে তালিকাভুক্ত যেকোন project
মান ব্যবহার করতে পারেন।
পরবর্তী বিভাগে, আমরা projects/first-gcp-project
রিসোর্স নাম ব্যবহার করে First Cloud Project
ফায়ারবেস পরিষেবা যোগ করব।
আপনার প্রকল্পে Firebase পরিষেবা যোগ করুন
Google ক্লাউড প্রকল্পগুলি Firebase দ্বারা প্রদত্ত পরিষেবাগুলির সুবিধা নিতে পারে৷ এই বিভাগে, আপনি শিখবেন কিভাবে আপনার বিদ্যমান Google ক্লাউড প্রজেক্টে প্রোগ্রামগতভাবে Firebase পরিষেবা যোগ করতে হয়। মনে রাখবেন যে আপনি Firebase কনসোলে আপনার বিদ্যমান Google ক্লাউড প্রকল্পে Firebase পরিষেবা যোগ করতে পারেন।
অনুরোধ
কল projects.addFirebase
. অ্যাডফায়ারবেস। এই কলের অনুরোধের অংশটি অবশ্যই খালি হতে হবে৷
আপনার Google ক্লাউড প্রকল্পে 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 ক্লাউড প্রকল্পে এখন Firebase পরিষেবা রয়েছে৷ প্রতিক্রিয়াটিতে আপনার নতুন তৈরি FirebaseProject
সম্পর্কে অন্যান্য দরকারী তথ্যও রয়েছে, যেমন এর projectNumber
এবং এর ডিফল্ট resources
। Operation
শেষ হওয়ার পরে স্বয়ংক্রিয়ভাবে মুছে ফেলা হয়।
আপনার প্রকল্পে Firebase অ্যাপ যোগ করুন
iOS, Android, এবং ওয়েব অ্যাপ সহ অনেকগুলি বিভিন্ন অ্যাপ FirebaseProject
ব্যবহার করতে পারে। এই বিভাগে, আপনি শিখবেন কিভাবে আপনার বিদ্যমান FirebaseProject
এ প্রোগ্রামগতভাবে Firebase অ্যাপ যোগ করতে হয়। মনে রাখবেন যে আপনি Firebase কনসোলে আপনার বিদ্যমান Firebase প্রকল্পে Firebase Apps যোগ করতে পারেন।
আপনার Firebase প্রোজেক্টে যোগ করতে Firebase অ্যাপের একটি ধরন বেছে নিন।
আপনার ফায়ারবেস প্রকল্পকে একটি Google Analytics অ্যাকাউন্টের সাথে লিঙ্ক করুন (ঐচ্ছিক)
আপনি একটি বিদ্যমান Google Analytics অ্যাকাউন্টকে আপনার বিদ্যমান FirebaseProject
সাথে প্রোগ্রাম্যাটিকভাবে লিঙ্ক করতে পারেন। মনে রাখবেন যে আপনি আপনার প্রজেক্ট সেটিংসের ইন্টিগ্রেশন ট্যাবে আপনার বিদ্যমান ফায়ারবেস প্রোজেক্টকে Google Analytics-এর সাথে লিঙ্ক করতে পারেন।
projects.addGoogleAnalytics
এ কল করার জন্য একটি analytics_resource
প্রয়োজন, যা একটি analyticsAccountId
বা একটি analyticsPropertyId
হতে পারে :
একটি বিদ্যমান
analyticsAccountId
উল্লেখ করুন নির্দিষ্ট অ্যাকাউন্টের মধ্যে একটি নতুন Google Analytics প্রপার্টি বিধান করতে এবং নতুন প্রপার্টিটিকে আপনার Firebase প্রোজেক্টের সাথে যুক্ত করতে।আপনার Firebase প্রোজেক্টের সাথে Google Analytics প্রপার্টি সংযুক্ত করতে একটি বিদ্যমান
analyticsPropertyId
নির্দিষ্ট করুন।
আপনি Google Analytics ওয়েবসাইটে আপনার analyticsAccountId
এবং বিদ্যমান যেকোনো analyticsPropertyId
উভয়ই খুঁজে পেতে পারেন।
আপনি যখন projects.addGoogleAnalytics
কল করুন।GoogleAnalytics:
প্রথম চেকটি নির্ধারণ করে যে Google Analytics প্রপার্টিতে বিদ্যমান কোনো ডেটা স্ট্রীম আপনার
FirebaseProject
এর কোনো বিদ্যমান ফায়ারবেসbundleId
packageName
ভিত্তি করে)। তারপর, প্রযোজ্য হিসাবে, ডেটা স্ট্রিম এবং অ্যাপগুলি লিঙ্ক করা হয়। মনে রাখবেন যে এই স্বয়ংক্রিয় লিঙ্কিং শুধুমাত্র Android Apps এবং iOS Apps এর ক্ষেত্রে প্রযোজ্য৷যদি আপনার ফায়ারবেস অ্যাপগুলির জন্য কোনও সংশ্লিষ্ট ডেটা স্ট্রীম পাওয়া না যায়, তাহলে আপনার প্রতিটি ফায়ারবেস অ্যাপের জন্য 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
কল করতে পারেন যতক্ষণ না সম্পন্নের মান true
done
এবং 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
শেষ হওয়ার পরে স্বয়ংক্রিয়ভাবে মুছে ফেলা হয়।
আপনার প্রকল্পের ডিফল্ট অবস্থান চূড়ান্ত করুন (ঐচ্ছিক)
যদি আপনার ফায়ারবেস প্রকল্পটি ক্লাউড ফায়ারস্টোর, ক্লাউড স্টোরেজ বা একটি অ্যাপ ইঞ্জিন অ্যাপ ব্যবহার করে, তাহলে আপনি প্রোগ্রামগতভাবে আপনার প্রকল্পের জন্য ডিফল্ট Google ক্লাউড প্ল্যাটফর্ম (GCP) সংস্থান অবস্থান চূড়ান্ত করতে পারেন। মনে রাখবেন আপনি Firebase কনসোলে একটি অবস্থানও নির্বাচন করতে পারেন।
এই অবস্থানটি সেট করার আগে, আপনার প্রকল্পের জন্য কোন অবস্থানটি সর্বোত্তম তা তথ্যের জন্য আপনার প্রকল্পের জন্য অবস্থানগুলি নির্বাচন করুন দেখুন৷ আপনার প্রকল্পের বৈধ অবস্থানের একটি তালিকা ফেরত দেওয়ার জন্য আপনাকে projects.availableLocations
এ কল করা উচিত কারণ যদি আপনার প্রকল্পটি একটি Google ক্লাউড সংস্থার অংশ হয়, তাহলে আপনার সংস্থার নীতিগুলি আপনার প্রকল্পের জন্য কোন অবস্থানগুলি বৈধ তা সীমাবদ্ধ করতে পারে ৷
এই defaultLocation.finalize
পদ্ধতিতে কল করা একটি ডিফল্ট ক্লাউড স্টোরেজ বালতি সহ একটি অ্যাপ ইঞ্জিন অ্যাপ্লিকেশন তৈরি করে যা আপনি অনুরোধের বডিতে প্রদান করেন এমন locationId
এ অবস্থিত।
ডিফল্ট GCP রিসোর্স লোকেশন ইতিমধ্যেই নির্দিষ্ট করা থাকতে পারে যদি Project
ইতিমধ্যেই একটি অ্যাপ ইঞ্জিন অ্যাপ্লিকেশন থাকে বা এই defaultLocation.finalize
পদ্ধতিটি আগে বলা হয়েছিল।
অনুরোধ
কল করুন projects.defaultLocation.finalize
। আপনার অনুরোধের মূল অংশটি কীভাবে তৈরি করবেন তা এখানে:
প্রয়োজনীয়:
-
locationId
: যে অবস্থানে আপনার ডেটা GCP পরিষেবাগুলির জন্য সংরক্ষণ করা হয় যার জন্য একটি অবস্থান সেটিং প্রয়োজন, যেমন ক্লাউড ফায়ারস্টোর বা ক্লাউড স্টোরেজ।
-
{
"locationId": "us-west2"
}
আপনার প্রকল্পের ডিফল্ট অবস্থান চূড়ান্ত করতে Node.js-এর জন্য এখানে একটি উদাহরণ রয়েছে:
const fetch = require('node-fetch');
async function finalizeProjectLocation(projectId, locationId) {
const accessToken = getAccessToken();
const uri = 'https://firebase.googleapis.com/v1beta1/projects/' + projectId + '/defaultLocation:finalize';
const options = {
method: 'POST',
headers: {
'Authorization': 'Bearer ' + accessToken,
},
body: JSON.stringify({
'locationId': locationId
}),
};
try {
const rawResponse = await fetch(uri, options);
const resp = await rawResponse.json();
console.log(resp);
} catch(err) {
console.error(err['message']);
}
}
ফলাফল
projects.defaultLocation.finalize
এ কলের ফলাফল হল একটি Operation
। আপনার প্রোজেক্টের জন্য অন্যান্য ফায়ারবেস-সম্পর্কিত এন্ডপয়েন্টে কল করার আগে, অপারেশন সফল হতে হবে।
অপারেশনটি সফল হয়েছে কিনা তা পরীক্ষা করার জন্য আপনি operations.get
কল করতে পারেন যতক্ষণ না সম্পন্নের মান true
done
এবং এর response
google.protobuf.Empty
টাইপ হয়। অপারেশন ব্যর্থ হলে, প্রতিক্রিয়া প্রধান error
google.rpc.Status
টাইপ হবে। Operation
শেষ হওয়ার পরে স্বয়ংক্রিয়ভাবে মুছে ফেলা হয়।