Firebase Hosting REST API আপনার Firebase-হোস্ট করা সাইটগুলিতে প্রোগ্রাম্যাটিক এবং কাস্টমাইজযোগ্য স্থাপনা সক্ষম করে। নতুন বা আপডেট করা Hosting সামগ্রী এবং কনফিগারেশন স্থাপন করতে এই REST API ব্যবহার করুন।
স্থাপনার জন্য Firebase CLI ব্যবহারের বিকল্প হিসেবে, আপনি Firebase Hosting REST API ব্যবহার করে আপনার সাইটের জন্য প্রোগ্রাম্যাটিকভাবে সম্পদের একটি নতুন version তৈরি করতে পারেন, সংস্করণে ফাইল আপলোড করতে পারেন, তারপর আপনার সাইটে সংস্করণটি স্থাপন করতে পারেন।
উদাহরণস্বরূপ, Firebase Hosting REST API এর সাহায্যে আপনি যা করতে পারেন:
সময়সূচী স্থাপন। ক্রোন জবের সাথে REST API ব্যবহার করে, আপনি নিয়মিত সময়সূচীতে Firebase-হোস্ট করা সামগ্রী পরিবর্তন করতে পারেন (উদাহরণস্বরূপ, আপনার সামগ্রীর একটি বিশেষ ছুটির দিন বা ইভেন্ট-সম্পর্কিত সংস্করণ স্থাপন করতে)।
ডেভেলপার টুলের সাথে ইন্টিগ্রেট করুন। আপনি আপনার টুলে একটি বিকল্প তৈরি করতে পারেন যাতে আপনি আপনার ওয়েব অ্যাপ প্রজেক্টগুলিকে Firebase Hosting এ স্থাপন করতে পারেন শুধুমাত্র একটি ক্লিকের মাধ্যমে (উদাহরণস্বরূপ, একটি IDE-এর মধ্যে একটি স্থাপন বোতামে ক্লিক করে)।
স্ট্যাটিক কন্টেন্ট তৈরি হলে অটোমেট ডিপ্লয়মেন্ট হয়। যখন কোনও প্রসেস প্রোগ্রাম্যাটিকভাবে স্ট্যাটিক কন্টেন্ট তৈরি করে (উদাহরণস্বরূপ, ব্যবহারকারী-জেনারেটেড কন্টেন্ট যেমন উইকি বা সংবাদ নিবন্ধ), তখন আপনি জেনারেটেড কন্টেন্টগুলিকে গতিশীলভাবে পরিবেশন করার পরিবর্তে স্ট্যাটিক ফাইল হিসেবে ডিপ্লয় করতে পারেন। এটি আপনার ব্যয়বহুল কম্পিউটিং শক্তি সাশ্রয় করে এবং আপনার ফাইলগুলিকে আরও স্কেলেবল উপায়ে পরিবেশন করে।
এই নির্দেশিকাটি প্রথমে বর্ণনা করে কিভাবে API সক্ষম, প্রমাণীকরণ এবং অনুমোদন করতে হয়। তারপর এই নির্দেশিকাটি একটি উদাহরণ দিয়ে যায় কিভাবে একটি Firebase Hosting সংস্করণ তৈরি করা যায়, সংস্করণে প্রয়োজনীয় ফাইল আপলোড করা যায় এবং অবশেষে সংস্করণটি স্থাপন করা যায়।
আপনি সম্পূর্ণ Hosting REST API রেফারেন্স ডকুমেন্টেশন থেকে এই REST API সম্পর্কে আরও জানতে পারবেন।
শুরু করার আগে: REST API সক্ষম করুন
আপনাকে Google API কনসোলে Firebase Hosting REST API সক্ষম করতে হবে:
গুগল এপিআই কনসোলে Firebase Hosting এপিআই পৃষ্ঠাটি খুলুন।
অনুরোধ করা হলে, আপনার Firebase প্রকল্পটি নির্বাচন করুন।
Firebase Hosting API পৃষ্ঠায় Enable এ ক্লিক করুন।
ধাপ ১: API অনুরোধগুলি প্রমাণীকরণ এবং অনুমোদনের জন্য একটি অ্যাক্সেস টোকেন পান
ফায়ারবেস প্রকল্পগুলি গুগল পরিষেবা অ্যাকাউন্টগুলিকে সমর্থন করে, যা আপনি আপনার অ্যাপ সার্ভার বা বিশ্বস্ত পরিবেশ থেকে ফায়ারবেস সার্ভার API কল করতে ব্যবহার করতে পারেন। আপনি যদি স্থানীয়ভাবে কোড তৈরি করেন বা আপনার অ্যাপ্লিকেশনটি অন-প্রেমিসে স্থাপন করেন, তাহলে আপনি সার্ভার অনুরোধগুলি অনুমোদনের জন্য এই পরিষেবা অ্যাকাউন্টের মাধ্যমে প্রাপ্ত শংসাপত্রগুলি ব্যবহার করতে পারেন।
একটি পরিষেবা অ্যাকাউন্ট প্রমাণীকরণ করতে এবং Firebase পরিষেবাগুলিতে অ্যাক্সেস করার জন্য এটিকে অনুমোদন করতে, আপনাকে অবশ্যই JSON ফর্ম্যাটে একটি ব্যক্তিগত কী ফাইল তৈরি করতে হবে।
আপনার পরিষেবা অ্যাকাউন্টের জন্য একটি ব্যক্তিগত কী ফাইল তৈরি করতে:
Firebase কনসোলে, Settings > Service Accounts খুলুন।
নতুন প্রাইভেট কী তৈরি করুন ক্লিক করুন, তারপর কী তৈরি করুন ক্লিক করে নিশ্চিত করুন।
কীটি ধারণকারী JSON ফাইলটি নিরাপদে সংরক্ষণ করুন।
স্বল্পস্থায়ী OAuth 2.0 অ্যাক্সেস টোকেন পুনরুদ্ধার করতে আপনার পছন্দের ভাষার জন্য Google Auth লাইব্রেরির সাথে আপনার Firebase শংসাপত্রগুলি ব্যবহার করুন:
নোড.জেএস
const {google} = require('googleapis'); function getAccessToken() { return new Promise(function(resolve, reject) { var key = require('./service-account.json'); var jwtClient = new google.auth.JWT( key.client_email, null, key.private_key, SCOPES, null ); jwtClient.authorize(function(err, tokens) { if (err) { reject(err); return; } resolve(tokens.access_token); }); }); }
এই উদাহরণে, Google API ক্লায়েন্ট লাইব্রেরি একটি JSON ওয়েব টোকেন, অথবা JWT দিয়ে অনুরোধটি প্রমাণীকরণ করে। আরও তথ্যের জন্য, JSON ওয়েব টোকেন দেখুন।
পাইথন
def _get_access_token(): """Retrieve a valid access token that can be used to authorize requests. :return: Access token. """ credentials = ServiceAccountCredentials.from_json_keyfile_name( 'service-account.json', SCOPES) access_token_info = credentials.get_access_token() return access_token_info.access_token
জাভা
private static String getAccessToken() throws IOException { GoogleCredential googleCredential = GoogleCredential .fromStream(new FileInputStream("service-account.json")) .createScoped(Arrays.asList(SCOPES)); googleCredential.refreshToken(); return googleCredential.getAccessToken(); }
আপনার অ্যাক্সেস টোকেনের মেয়াদ শেষ হওয়ার পরে, আপডেট করা অ্যাক্সেস টোকেন পুনরুদ্ধার করার জন্য টোকেন রিফ্রেশ পদ্ধতিটি স্বয়ংক্রিয়ভাবে কল করা হয়।
ধাপ ২: নিশ্চিত করুন যে আপনার প্রকল্পের একটি ডিফল্ট Hosting সাইট আছে।
Firebase Hosting এ আপনার প্রথম স্থাপনার আগে, আপনার Firebase প্রকল্পের একটি ডিফল্ট Hosting SITE থাকতে হবে।
sites.listএন্ডপয়েন্টে কল করে আপনার প্রোজেক্টে ইতিমধ্যেই একটি ডিফল্ট Hosting সাইট আছে কিনা তা পরীক্ষা করুন।উদাহরণস্বরূপ:
cURL কমান্ড
curl -H "Content-Type: application/json" \ -H "Authorization: Bearer ACCESS_TOKEN" \ https://firebasehosting.googleapis.com/v1beta1/projects/PROJECT_ID/sitesকাঁচা HTTPS অনুরোধ
Host: firebasehosting.googleapis.com POST /v1beta1/projects/PROJECT_ID/sites HTTP/1.1 Authorization: Bearer ACCESS_TOKEN Content-Type: application/json
যদি কোনও সাইটের
"type": "DEFAULT_SITE", তাহলে আপনার প্রোজেক্টে ইতিমধ্যেই একটি ডিফল্ট Hosting সাইট রয়েছে। এই ধাপের বাকি অংশটি এড়িয়ে যান এবং পরবর্তী ধাপে যান: আপনার সাইটের জন্য একটি নতুন সংস্করণ তৈরি করুন ।যদি আপনি একটি খালি অ্যারে পান, তাহলে আপনার কোনও ডিফল্ট Hosting সাইট নেই। এই ধাপের বাকি অংশটি সম্পূর্ণ করুন।
আপনার ডিফল্ট Hosting সাইটের জন্য
SITE_IDনির্ধারণ করুন। এইSITE_IDনির্ধারণ করার সময় নিম্নলিখিত বিষয়গুলি মনে রাখবেন:এই
SITE_IDআপনার ডিফল্ট Firebase সাবডোমেন তৈরি করতে ব্যবহৃত হয়:SITE_ID .web.appএবংSITE_ID .firebaseapp.com.একটি
SITE_IDনিম্নলিখিত প্রয়োজনীয়তা রয়েছে:- একটি বৈধ হোস্টনেম লেবেল হতে হবে, অর্থাৎ এতে
.,_, ইত্যাদি থাকতে পারবে না। - ৩০টি অক্ষর বা তার কম হতে হবে
- Firebase-এর মধ্যে বিশ্বব্যাপী অনন্য হতে হবে
- একটি বৈধ হোস্টনেম লেবেল হতে হবে, অর্থাৎ এতে
মনে রাখবেন যে আমরা প্রায়শই আপনার ডিফল্ট Hosting সাইটের জন্য
SITE_IDহিসেবে আপনার প্রোজেক্ট আইডি ব্যবহার করার পরামর্শ দিই। Understand Firebase projects থেকে এই আইডিটি কীভাবে খুঁজে পাবেন তা শিখুন।আপনার পছন্দসই
SITE_IDপ্যারামিটার হিসেবেsiteIdব্যবহার করেsites.createএন্ডপয়েন্টে কল করে আপনার ডিফল্ট Hosting সাইট তৈরি করুন।উদাহরণস্বরূপ:
cURL কমান্ড
curl -H "Content-Type: application/json" \ -H "Authorization: Bearer ACCESS_TOKEN" \ https://firebasehosting.googleapis.com/v1beta1/projects/PROJECT_ID/sites?siteId=SITE_IDকাঁচা HTTPS অনুরোধ
Host: firebasehosting.googleapis.com POST /v1beta1/projects/PROJECT_ID/sites?siteId=SITE_ID Authorization: Bearer ACCESS_TOKEN Content-Type: application/json
sites.createএ এই API কলটি নিম্নলিখিত JSON প্রদান করে:{ "name": "projects/PROJECT_ID/sites/SITE_ID", "defaultUrl": "https://SITE_ID.web.app", "type": "DEFAULT_SITE" }
ধাপ ৩: আপনার সাইটের জন্য একটি নতুন সংস্করণ তৈরি করুন
আপনার প্রথম API কল হল আপনার সাইটের জন্য একটি নতুন Version তৈরি করা। এই নির্দেশিকায় পরে, আপনি এই সংস্করণে ফাইল আপলোড করবেন, তারপর এটি আপনার সাইটে স্থাপন করবেন।
আপনি যে সাইটে স্থাপন করতে চান তার SITE_ID নির্ধারণ করুন।
কলটিতে আপনার SITE_ID ব্যবহার করে versions.create এন্ডপয়েন্টে কল করুন।
(ঐচ্ছিক) আপনি কলটিতে একটি Firebase Hosting কনফিগারেশন অবজেক্টও পাস করতে পারেন, যার মধ্যে একটি হেডার সেট করা অন্তর্ভুক্ত যা একটি নির্দিষ্ট সময়ের জন্য সমস্ত ফাইল ক্যাশে করে।
উদাহরণস্বরূপ:
cURL কমান্ড
curl -H "Content-Type: application/json" \ -H "Authorization: Bearer ACCESS_TOKEN" \ -d '{ "config": { "headers": [{ "glob": "**", "headers": { "Cache-Control": "max-age=1800" } }] } }' \ https://firebasehosting.googleapis.com/v1beta1/sites/SITE_ID/versionsকাঁচা HTTPS অনুরোধ
Host: firebasehosting.googleapis.com POST /v1beta1/sites/SITE_ID/versions HTTP/1.1 Authorization: Bearer ACCESS_TOKEN Content-Type: application/json Content-Length: 134 { "config": { "headers": [{ "glob": "**", "headers": { "Cache-Control": "max-age=1800" } }] } }
versions.create এ এই API কলটি নিম্নলিখিত JSON প্রদান করে:
{
"name": "sites/SITE_ID/versions/VERSION_ID",
"status": "CREATED",
"config": {
"headers": [{
"glob": "**",
"headers": {
"Cache-Control": "max-age=1800"
}
}]
}
}এই প্রতিক্রিয়াটিতে নতুন সংস্করণের জন্য একটি অনন্য শনাক্তকারী রয়েছে, যা এই ফর্ম্যাটে রয়েছে: sites/ SITE_ID /versions/ VERSION_ID । এই নির্দিষ্ট সংস্করণটি উল্লেখ করার জন্য আপনার এই নির্দেশিকা জুড়ে এই অনন্য শনাক্তকারীর প্রয়োজন হবে।
ধাপ ৪: আপনি যে ফাইলগুলি স্থাপন করতে চান তার তালিকা নির্দিষ্ট করুন।
এখন যেহেতু আপনার নতুন সংস্করণ শনাক্তকারী আছে, আপনাকে Firebase Hosting বলতে হবে যে আপনি এই নতুন সংস্করণে কোন ফাইলগুলি স্থাপন করতে চান।
মনে রাখবেন যে Hosting প্রতিটি ফাইলের জন্য সর্বোচ্চ আকার সীমা 2 GB।
এই API-এর জন্য আপনাকে SHA256 হ্যাশ ব্যবহার করে ফাইল শনাক্ত করতে হবে। তাই, API কল করার আগে, আপনাকে প্রথমে প্রতিটি স্ট্যাটিক ফাইলের জন্য একটি হ্যাশ গণনা করতে হবে, ফাইলগুলিকে Gzipping করে তারপর প্রতিটি নতুন সংকুচিত ফাইলের SHA256 হ্যাশ গ্রহণ করে।
আমাদের উদাহরণটি অব্যাহত রেখে, ধরা যাক আপনি নতুন সংস্করণে তিনটি ফাইল স্থাপন করতে চান: file1 , file2 , এবং file3 ।
ফাইলগুলো জিপ করুন:
gzip file1 && gzip file2 && gzip file3
এখন আপনার কাছে তিনটি সংকুচিত ফাইল আছে
file1.gz,file2.gz, এবংfile3.gz।প্রতিটি সংকুচিত ফাইলের SHA256 হ্যাশ পান:
cat file1.gz | openssl dgst -sha256 66d61f86bb684d0e35f94461c1f9cf4f07a4bb3407bfbd80e518bd44368ff8f4
cat file2.gz | openssl dgst -sha256 490423ebae5dcd6c2df695aea79f1f80555c62e535a2808c8115a6714863d083
cat file3.gz | openssl dgst -sha256 59cae17473d7dd339fe714f4c6c514ab4470757a4fe616dfdb4d81400addf315
এখন আপনার কাছে তিনটি সংকুচিত ফাইলের তিনটি SHA256 হ্যাশ আছে।
এই তিনটি হ্যাশকে API অনুরোধের মাধ্যমে
versions.populateFilesএন্ডপয়েন্টে পাঠান। আপলোড করা ফাইলের (এই উদাহরণে,/file1,/file2, এবং/file3) কাঙ্ক্ষিত পথ অনুসারে প্রতিটি হ্যাশ তালিকাভুক্ত করুন।উদাহরণস্বরূপ:
cURL কমান্ড
$ curl -H "Content-Type: application/json" \ -H "Authorization: Bearer ACCESS_TOKEN" \ -d '{ "files": { "/file1": "66d61f86bb684d0e35f94461c1f9cf4f07a4bb3407bfbd80e518bd44368ff8f4", "/file2": "490423ebae5dcd6c2df695aea79f1f80555c62e535a2808c8115a6714863d083", "/file3": "59cae17473d7dd339fe714f4c6c514ab4470757a4fe616dfdb4d81400addf315" } }' \ https://firebasehosting.googleapis.com/v1beta1/sites/SITE_ID/versions/VERSION_ID:populateFilesকাঁচা HTTPS অনুরোধ
Host: firebasehosting.googleapis.com POST /v1beta1/sites/SITE_ID/versions/VERSION_ID:populateFiles HTTP/1.1 Authorization: Bearer ACCESS_TOKEN Content-Type: application/json Content-Length: 181 { "files": { "/file1": "66d61f86bb684d0e35f94461c1f9cf4f07a4bb3407bfbd80e518bd44368ff8f4", "/file2": "490423ebae5dcd6c2df695aea79f1f80555c62e535a2808c8115a6714863d083", "/file3": "59cae17473d7dd339fe714f4c6c514ab4470757a4fe616dfdb4d81400addf315" } }
versions.populateFiles এ এই API কলটি নিম্নলিখিত JSON প্রদান করে:
{ "uploadRequiredHashes": [ "490423ebae5dcd6c2df695aea79f1f80555c62e535a2808c8115a6714863d083", "59cae17473d7dd339fe714f4c6c514ab4470757a4fe616dfdb4d81400addf315" ], "uploadUrl": "https://upload-firebasehosting.googleapis.com/upload/sites/SITE_ID/versions/VERSION_ID/files" }
এই প্রতিক্রিয়ার মধ্যে রয়েছে:
প্রতিটি ফাইলের হ্যাশ যা আপলোড করতে হবে। উদাহরণস্বরূপ, এই উদাহরণে
file1ইতিমধ্যেই পূর্ববর্তী সংস্করণে আপলোড করা হয়েছিল, তাই এর হ্যাশuploadRequiredHashesতালিকায় অন্তর্ভুক্ত নয়।নতুন সংস্করণের জন্য নির্দিষ্ট
uploadUrl।
পরবর্তী ধাপে দুটি নতুন ফাইল আপলোড করার জন্য, আপনার versions.populateFiles প্রতিক্রিয়া থেকে হ্যাশ এবং uploadURL প্রয়োজন হবে।
ধাপ ৫: প্রয়োজনীয় ফাইল আপলোড করুন
আপনাকে প্রতিটি প্রয়োজনীয় ফাইল আলাদাভাবে আপলোড করতে হবে (পূর্ববর্তী ধাপে versions.populateFiles এর উত্তর থেকে uploadRequiredHashes এ তালিকাভুক্ত ফাইলগুলি)। এই ফাইল আপলোডের জন্য, আপনার পূর্ববর্তী ধাপ থেকে ফাইল হ্যাশ এবং uploadUrl প্রয়োজন হবে।
https://upload-firebasehosting.googleapis.com/upload/sites/ SITE_ID /versions/ VERSION_ID /files/ FILE_HASHফর্ম্যাটে একটি ফাইল-নির্দিষ্ট URL তৈরি করতেuploadUrlএ একটি ফরোয়ার্ড স্ল্যাশ এবং ফাইলের হ্যাশ যুক্ত করুন।অনুরোধের একটি সিরিজ ব্যবহার করে ফাইল-নির্দিষ্ট URL-এ একের পর এক সমস্ত প্রয়োজনীয় ফাইল (এই উদাহরণে, শুধুমাত্র
file2.gzএবংfile3.gz) আপলোড করুন।উদাহরণস্বরূপ, সংকুচিত
file2.gzআপলোড করতে:cURL কমান্ড
curl -H "Authorization: Bearer ACCESS_TOKEN" \ -H "Content-Type: application/octet-stream" \ --data-binary @./file2.gz \ https://upload-firebasehosting.googleapis.com/upload/sites/SITE_ID/versions/VERSION_ID/files/FILE_HASHকাঁচা HTTPS অনুরোধ
Host: upload-firebasehosting.googleapis.com POST /upload/sites/SITE_ID/versions/VERSION_ID/files/FILE_HASH HTTP/1.1 Authorization: Bearer ACCESS_TOKEN Content-Type: application/octet-stream Content-Length: 500 content-of-file2.gz
সফল আপলোডগুলি 200 OK HTTPS প্রতিক্রিয়া প্রদান করে।
ধাপ ৬: সংস্করণের অবস্থা চূড়ান্ত করুন।
versions.populateFiles প্রতিক্রিয়াতে তালিকাভুক্ত সমস্ত ফাইল আপলোড করার পরে, আপনি আপনার সংস্করণের স্থিতি FINALIZED এ আপডেট করতে পারেন।
আপনার API অনুরোধের status ফিল্ডটি FINALIZED এ সেট করে versions.patch এন্ডপয়েন্টে কল করুন।
উদাহরণস্বরূপ:
cURL কমান্ড
curl -H "Content-Type: application/json" \
-H "Authorization: Bearer ACCESS_TOKEN" \
-X PATCH \
-d '{"status": "FINALIZED"}' \
https://firebasehosting.googleapis.com/v1beta1/sites/SITE_ID/versions/VERSION_ID?update_mask=status
কাঁচা HTTPS অনুরোধ
Host: firebasehosting.googleapis.com PATCH /v1beta1/sites/SITE_ID/versions/VERSION_ID?update_mask=status HTTP/1.1 Authorization: Bearer ACCESS_TOKEN Content-Type: application/json Content-Length: 23 {"status": "FINALIZED"}
এই API কল টু versions.patch নিম্নলিখিত JSON ফেরত দেয়। status FINALIZED এ আপডেট করা হয়েছে কিনা তা পরীক্ষা করুন।
{ "name": "sites/SITE_ID/versions/VERSION_ID", "status": "FINALIZED", "config": { "headers": [{ "glob": "**", "headers": {"Cache-Control": "max-age=1800"} }] }, "createTime": "2018-12-02T13:41:56.905743Z", "createUser": { "email": "SERVICE_ACCOUNT_EMAIL@SITE_ID.iam.gserviceaccount.com" }, "finalizeTime": "2018-12-02T14:56:13.047423Z", "finalizeUser": { "email": "USER_EMAIL@DOMAIN.tld" }, "fileCount": "5", "versionBytes": "114951" }
ধাপ ৭: স্থাপনার জন্য সংস্করণটি প্রকাশ করুন
এখন আপনার একটি চূড়ান্ত সংস্করণ আছে, এটি স্থাপনের জন্য প্রকাশ করুন। এই ধাপের জন্য, আপনাকে আপনার সংস্করণের একটি Release তৈরি করতে হবে যাতে হোস্টিং কনফিগারেশন এবং আপনার নতুন সংস্করণের জন্য সমস্ত সামগ্রী ফাইল থাকবে।
আপনার রিলিজ তৈরি করতে releases.create এন্ডপয়েন্টে কল করুন।
উদাহরণস্বরূপ:
cURL কমান্ড
curl -H "Authorization: Bearer ACCESS_TOKEN" \
-X POST
https://firebasehosting.googleapis.com/v1beta1/sites/SITE_ID/releases?versionName=sites/SITE_ID/versions/VERSION_ID
কাঁচা HTTPS অনুরোধ
Host: firebasehosting.googleapis.com POST /v1beta1/sites/SITE_ID/releases?versionName=sites/SITE_ID/versions/VERSION_ID HTTP/1.1 Authorization: Bearer ACCESS_TOKEN
releases.create এ এই API কলটি নিম্নলিখিত JSON প্রদান করে:
{ "name": "sites/SITE_ID/releases/RELEASE_ID", "version": { "name": "sites/SITE_ID/versions/VERSION_ID", "status": "FINALIZED", "config": { "headers": [{ "glob": "**", "headers": {"Cache-Control": "max-age=1800"} }] } }, "type": "DEPLOY", "releaseTime": "2018-12-02T15:14:37Z" }
হোস্টিং কনফিগারেশন এবং নতুন সংস্করণের সমস্ত ফাইল এখন আপনার সাইটে স্থাপন করা উচিত, এবং আপনি URL গুলি ব্যবহার করে আপনার ফাইলগুলি অ্যাক্সেস করতে পারবেন:
-
https:// SITE_ID .web.app/file1 -
https:// SITE_ID .web.app/file2 -
https:// SITE_ID .web.app/file3
এই ফাইলগুলি আপনার SITE_ID .firebaseapp.com ডোমেনের সাথে সম্পর্কিত URL গুলিতেও অ্যাক্সেসযোগ্য।
আপনি Firebase কনসোলের Hosting ড্যাশবোর্ডে আপনার নতুন রিলিজ তালিকাভুক্ত দেখতে পাবেন।