ফায়ারবেস ম্যানেজমেন্ট REST API একটি প্রোজেক্টের Firebase রিসোর্স এবং ফায়ারবেস অ্যাপস সহ Firebase প্রোজেক্টগুলির প্রোগ্রাম্যাটিক সেটআপ এবং পরিচালনা সক্ষম করে।
এই ওভারভিউটি বর্তমানে ফায়ারবেস পরিষেবাগুলি ব্যবহার করে না এমন একটি বিদ্যমান Google Cloud প্রকল্পে Firebase সংস্থান এবং অ্যাপগুলি যোগ করার জন্য সাধারণ কর্মপ্রবাহ বর্ণনা করে৷
আপনি এই পৃষ্ঠার নির্দিষ্ট বিভাগে যেতে পারেন যদি আপনি চান:
- Add Firebase services to your project
- Add Firebase Apps to your Firebase project
- একটি Google Analytics অ্যাকাউন্টের সাথে আপনার Firebase প্রকল্প লিঙ্ক করুন
- Finalize your project's default location
এই পৃষ্ঠায় যেকোনো পদক্ষেপ অনুসরণ করার আগে, নিশ্চিত করুন যে আপনি API সক্ষম করেছেন ।
Firebase Management API-এর অ্যাক্সেস ম্যানেজমেন্ট সম্পর্কে তথ্যের জন্য, Cloud Identity Access Management (IAM) API ডকুমেন্টেশন দেখুন।
আপনি শুরু করার আগে
Before you begin, you'll need to enable the Management API for your Google Cloud project and generate your access token .
Enable the Management REST API for your Google Cloud project
If you haven't already, you'll need to enable the Firebase Management API for use with your Google Cloud project.
- Open the Firebase Management API page in the Google APIs console.
- When prompted, select your Google Cloud project.
- Click Enable on the Firebase Management API page.
Generate your API access token
Here's an example for Node.js that retrieves your access token.
প্রথমত, আপনি যদি Google Cloud পরিবেশে না থাকেন, তাহলে আপনার পরিষেবা অ্যাকাউন্ট কী-এর পথে GOOGLE_APPLICATION_CREDENTIALS
পরিবেশ পরিবর্তনশীল সেট করুন৷
লিনাক্স বা ম্যাকোস
export GOOGLE_APPLICATION_CREDENTIALS="/path/to/your/service-account-file.json"
উইন্ডোজ
With PowerShell:
$env:GOOGLE_APPLICATION_CREDENTIALS="C:\path\to\your\service-account-file.json"
Then, use the Firebase Admin SDK to get an access token from your service account credentials:
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);
});
}
Find the resource name of your project
আপনি Google Cloud প্রকল্পগুলি খুঁজে পেতে পারেন যা ফায়ারবেস পরিষেবা যুক্ত করার জন্য উপলব্ধ।
অনুরোধ
কল availableProjects.list
. এই কলের অনুরোধের অংশটি অবশ্যই খালি হতে হবে৷
Here's an example for Node.js to request a list of available Google Cloud projects:
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"
}
]
}
This example response has two Google Cloud projects that can have Firebase services added to them. Note that the project
field provides the globally unique resource name for a project.
You can use any project
value listed in the response from availableProjects.list
to add Firebase services or add apps to your project.
In the next section, we'll add Firebase services to First Cloud Project
using the projects/first-gcp-project
resource name.
Add Firebase services to your project
Google Cloud projects can take advantage of the services offered by Firebase. এই বিভাগে, আপনি শিখবেন কীভাবে আপনার বিদ্যমান Google Cloud প্রকল্পে প্রোগ্রামগতভাবে Firebase পরিষেবাগুলি যোগ করতে হয়। মনে রাখবেন যে আপনি Firebase কনসোলে আপনার বিদ্যমান Google Cloud প্রকল্পে Firebase পরিষেবা যোগ করতে পারেন।
অনুরোধ
কল projects.addFirebase
। The request body for this call must be empty.
Here's an example for Node.js to add Firebase services to your Google Cloud project:
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']);
}
}
ফলাফল
The result of a call to projects.addFirebase
is an Operation
. Before you can call other Firebase-related endpoints for your project, the operation must be successful.
অপারেশনটি সফল হয়েছে কিনা তা পরীক্ষা করার জন্য, আপনি operations.get
কল করতে পারেন যতক্ষণ না done
মান true
হয় এবং এর response
FirebaseProject
টাইপের হয়। If the operation fails, its error
is set to 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
। The Operation
is automatically deleted after completion.
Add Firebase Apps to your project
Many different apps can use a FirebaseProject
, including iOS, Android, and web apps. এই বিভাগে, আপনি শিখবেন কিভাবে আপনার বিদ্যমান FirebaseProject
এ প্রোগ্রামগতভাবে Firebase অ্যাপ যোগ করতে হয়। Note that you can also add Firebase Apps to your existing Firebase project in the Firebase console .
আপনার Firebase প্রোজেক্টে যোগ করতে Firebase অ্যাপের একটি ধরন বেছে নিন।
Link your Firebase project to a Google Analytics account (Optional)
You can link an existing Google Analytics account to your existing FirebaseProject
programmatically. Note that you can also link your existing Firebase project to Google Analytics in the Integrations tab of your Project Settings .
The call to projects.addGoogleAnalytics
requires an analytics_resource
, which can either be an analyticsAccountId
or an analyticsPropertyId
:
একটি বিদ্যমান
analyticsAccountId
উল্লেখ করুন নির্দিষ্ট অ্যাকাউন্টের মধ্যে একটি নতুন Google Analytics প্রপার্টি বিধান করতে এবং নতুন প্রপার্টিটিকে আপনার Firebase প্রোজেক্টের সাথে যুক্ত করতে।আপনার Firebase প্রোজেক্টের সাথে Google Analytics প্রপার্টি অ্যাসোসিয়েট করার জন্য একটি বিদ্যমান
analyticsPropertyId
উল্লেখ করুন।
You can find both your analyticsAccountId
and any existing analyticsPropertyId
on the Google Analytics website .
আপনি যখন projects.addGoogleAnalytics
কল করুন।GoogleAnalytics:
The first check determines if any existing data streams in the Google Analytics property correspond to any existing Firebase Apps in your
FirebaseProject
(based on thepackageName
orbundleId
associated with the data stream). তারপর, প্রযোজ্য হিসাবে, ডেটা স্ট্রীম এবং অ্যাপস লিঙ্ক করা হয়। মনে রাখবেন যে এই স্বয়ংক্রিয় লিঙ্কিং শুধুমাত্র Android Apps এবং iOS Apps এর ক্ষেত্রে প্রযোজ্য৷If no corresponding data streams are found for your Firebase Apps, new data streams are provisioned in the Google Analytics property for each of your Firebase Apps. মনে রাখবেন যে একটি ওয়েব অ্যাপের জন্য একটি নতুন ডেটা স্ট্রীম সর্বদা বিধান করা হয় যদিও এটি আগে আপনার অ্যানালিটিক্স প্রপার্টিতে ডেটা স্ট্রিমের সাথে যুক্ত ছিল।
Learn more about the hierarchy and structure of Google Analytics accounts in the Analytics documentation .
অনুরোধ
projects.addGoogleAnalytics
কল করুন।GoogleAnalytics যোগ করুন।
আমাদের project.addGoogleAnalytics
এ উদাহরণ কলের অনুরোধের বডিতে, আমরা আমাদের Google Analytics অ্যাকাউন্ট analyticsAccountId
নির্দিষ্ট করব। This call will provision a new Google Analytics property and associate the new property with the 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']);
}
}
ফলাফল
The result of a call to projects.addGoogleAnalytics
is an Operation
. আপনার প্রোজেক্টের জন্য অন্যান্য ফায়ারবেস-সম্পর্কিত এন্ডপয়েন্টে কল করার আগে, অপারেশনটি সফল হতে হবে।
To check if the operation is successful, you can call operations.get
on the operation until the value of done
is true
and the response
is of type analyticsDetails
. যদি অপারেশন ব্যর্থ হয় তবে এর error
google.rpc.Status
সেট করা আছে।
Here's the response body of an operations.get
call:
{
"name": "operations/...",
"none": true,
"response": {
"@type": "type.googleapis.com/google.firebase.service.v1beta1.AnalyticsDetails",
"analyticsProperty": [
{
"id": "...",
"displayName": "..."
}
],
"streamMappings": [
{
"app": "...",
"streamId": "...",
"measurementId": "..."
}
]
}
}
Since done
is true and the response
type is analyticsDetails
, the FirebaseProject
is now linked to the specified Google Analytics account. The Operation
is automatically deleted after completion.
আপনার প্রকল্পের ডিফল্ট অবস্থান চূড়ান্ত করুন (ঐচ্ছিক)
If your Firebase project will use Cloud Firestore , Cloud Storage , or an App Engine app, you can finalize the default Google Cloud Platform (GCP) resource location for your project programmatically. মনে রাখবেন আপনি Firebase কনসোলে একটি অবস্থানও নির্বাচন করতে পারেন।
এই অবস্থানটি সেট করার আগে, আপনার প্রকল্পের জন্য কোন অবস্থানটি সর্বোত্তম সে সম্পর্কে তথ্যের জন্য আপনার প্রকল্পের জন্য অবস্থান নির্বাচন করুন। আপনার প্রকল্পের বৈধ অবস্থানের একটি তালিকা ফেরত দেওয়ার জন্য আপনাকে projects.availableLocations
এ কল করা উচিত কারণ যদি আপনার প্রকল্পটি একটি Google ক্লাউড সংস্থার অংশ হয়, তাহলে আপনার সংস্থার নীতিগুলি আপনার প্রকল্পের জন্য কোন অবস্থানগুলি বৈধ তা সীমাবদ্ধ করতে পারে ৷
Calling this defaultLocation.finalize
method creates an App Engine application with a default Cloud Storage bucket located in the locationId
that you provide in the request body.
The default GCP resource location may have already been specified if the Project
already has an App Engine application or this defaultLocation.finalize
method was previously called.
অনুরোধ
Call projects.defaultLocation.finalize
. আপনার অনুরোধের অংশটি কীভাবে তৈরি করবেন তা এখানে:
প্রয়োজনীয়:
-
locationId
: The location where your data is stored for GCP services that require a location setting, like Cloud Firestore or Cloud Storage .
-
{
"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
। Before you can call other Firebase-related endpoints for your project, the operation must be successful.
To check if the operation is successful you can call operations.get
on the operation until the value of done
is true
and its response
is of type google.protobuf.Empty
. অপারেশন ব্যর্থ হলে, প্রতিক্রিয়া প্রধান error
google.rpc.Status
টাইপ হবে। Operation
সম্পূর্ণ হওয়ার পরে স্বয়ংক্রিয়ভাবে মুছে ফেলা হয়।