Firebase Hosting আপনার সাইটে /__ দিয়ে শুরু হওয়া ইউআরএলগুলো সংরক্ষিত রাখে। এই সংরক্ষিত নেমস্পেসটি Firebase Hosting সাথে অন্যান্য ফায়ারবেস প্রোডাক্ট ব্যবহার করা সহজ করে তোলে।
এই সংরক্ষিত URL-গুলো Firebase-এ ডেপ্লয় করার সময় ( firebase deploy ) অথবা লোকাল সার্ভারে আপনার অ্যাপ চালানোর সময় ( firebase serve ) উভয় ক্ষেত্রেই উপলব্ধ থাকে।
সংরক্ষিত URL-গুলির জন্য স্ক্রিপ্ট যোগ করুন
যেহেতু Firebase Hosting ডেপ্লয় করার সময় HTTP/2-এর মাধ্যমে পরিবেশিত হয়, তাই আপনি একই অরিজিন থেকে ফাইল লোড করে পারফরম্যান্স বাড়াতে পারেন। Firebase Hosting Firebase JavaScript SDK-এর ভার্সন ৮, নিম্নলিখিত ফরম্যাটে বিশেষ URL থেকে পরিবেশন করে:
/__/firebase/JS_SDK_VERSION/FIREBASE_SDK_NAME.js
আমরা দৃঢ়ভাবে সুপারিশ করি যে আপনি শুধু আপনার অ্যাপে ব্যবহৃত লাইব্রেরিগুলোই লোড করুন। উদাহরণস্বরূপ, শুধুমাত্র Authentication এবং Cloud Firestore অন্তর্ভুক্ত করতে, আপনার <body> ট্যাগের শেষে, কিন্তু যেকোনো Firebase পরিষেবা ব্যবহার করার আগে, নিম্নলিখিত স্ক্রিপ্টগুলো যোগ করুন:
<body>
<!-- Insert these scripts at the bottom of the HTML, but before you use any Firebase services -->
<!-- Firebase App (the core Firebase SDK) is always required and must be listed first -->
<script src="/__/firebase/8.10.1/firebase-app.js"></script>
<!-- Add Firebase products that you want to use -->
<script src="/__/firebase/8.10.1/firebase-auth.js"></script>
<script src="/__/firebase/8.10.1/firebase-firestore.js"></script>
</body>
SDK স্বয়ংক্রিয় কনফিগারেশন
স্বয়ংক্রিয় SDK কনফিগারেশনের মাধ্যমে একটিমাত্র কোডবেস থেকে একাধিক এনভায়রনমেন্ট (যেমন ডেভ, স্টেজিং এবং প্রোডাকশন) পরিচালনা করা সহজ হয়। সংরক্ষিত Hosting ইউআরএল ব্যবহার করে আপনি একই কোড একাধিক ফায়ারবেস প্রজেক্টে ডেপ্লয় করতে পারেন।
এসডিকে-গুলো হোস্ট করার পাশাপাশি, সংরক্ষিত নেমস্পেসটি Hosting সাইটের সাথে যুক্ত ফায়ারবেস প্রজেক্টের জন্য এসডিকে ইনিশিয়ালাইজ করতে প্রয়োজনীয় সমস্ত কনফিগারেশনও সরবরাহ করে। এই ফায়ারবেস কনফিগারেশন এবং এসডিকে ইনিশিয়ালাইজেশন একটি স্ক্রিপ্টের মাধ্যমে করা হয়, যা আপনি সরাসরি অন্তর্ভুক্ত করতে পারেন:
<!-- Load the Firebase SDKs before loading this file -->
<script src="/__/firebase/init.js"></script>
যখন আপনি Firebase-এ ডেপ্লয় করেন বা আপনার অ্যাপটি স্থানীয়ভাবে পরীক্ষা করেন, তখন এই স্ক্রিপ্টটি স্বয়ংক্রিয়ভাবে সক্রিয় Firebase প্রজেক্টের জন্য Firebase JavaScript SDK কনফিগার করে এবং SDK-টি ইনিশিয়ালাইজ করে।
আপনি যদি নিজে ইনিশিয়ালাইজেশন নিয়ন্ত্রণ করতে চান, তাহলে Firebase কনফিগারেশন ভ্যালুগুলো JSON ফর্মেও পাওয়া যায়:
fetch('/__/firebase/init.json').then(async response => {
firebase.initializeApp(await response.json());
});
সংরক্ষিত Hosting ইউআরএল থেকে উপলব্ধ ফায়ারবেস জেএস এসডিকে
| ফায়ারবেস পণ্য | লাইব্রেরি রেফারেন্স (সংরক্ষিত ইউআরএল) |
|---|---|
| ফায়ারবেস কোর (প্রয়োজনীয়) | <script src="/__/firebase/8.10.1/firebase-app.js"></script> |
| Analytics | <script src="/__/firebase/8.10.1/firebase-analytics.js"></script> |
| App Check | <script src="/__/firebase/8.10.1/firebase-app-check.js"></script> |
| Authentication | <script src="/__/firebase/8.10.1/firebase-auth.js"></script> |
| Cloud Firestore | <script src="/__/firebase/8.10.1/firebase-firestore.js"></script> |
| Cloud Functions for Firebase Client SDK | <script src="/__/firebase/8.10.1/firebase-functions.js"></script> |
| Firebase ইনস্টলেশন | <script src="/__/firebase/8.10.1/firebase-installations.js"></script> |
| Cloud Messaging | <script src="/__/firebase/8.10.1/firebase-messaging.js"></script> Cloud Messaging ব্যবহারের সর্বোত্তম অভিজ্ঞতার জন্য, Analytics জন্য ফায়ারবেস এসডিকে-টিও যুক্ত করুন। |
| Cloud Storage | <script src="/__/firebase/8.10.1/firebase-storage.js"></script> |
| Performance Monitoring ( বিটা রিলিজ) | <script src="/__/firebase/8.10.1/firebase-performance.js"></script> |
| Realtime Database | <script src="/__/firebase/8.10.1/firebase-database.js"></script> |
| Remote Config ( বিটা রিলিজ) | <script src="/__/firebase/8.10.1/firebase-remote-config.js"></script> Remote Config ব্যবহারের সর্বোত্তম অভিজ্ঞতার জন্য, Firebase SDK for Analytics ও যোগ করুন। |
| Firebase JavaScript এসডিকে (সম্পূর্ণ SDK) | <script src="/__/firebase/8.10.1/firebase.js"></script> |
প্রমাণীকরণ সহায়ক
Firebase Authentication OAuth-এর মাধ্যমে প্রোভাইডারদের সাথে অথেনটিকেশন সম্পন্ন করার জন্য বিশেষ জাভাস্ক্রিপ্ট এবং এইচটিএমএল সরবরাহ করতে একটি সংরক্ষিত নেমস্পেস ব্যবহার করে। এর ফলে প্রতিটি ফায়ারবেস প্রজেক্টের একটি স্বতন্ত্র ফায়ারবেস সাবডোমেইন থাকতে পারে, যা Firebase Authentication নিরাপত্তা বৃদ্ধি করে।
এছাড়াও, এটি আপনাকে firebase.initializeApp() এর authDomain অপশনের জন্য আপনার নিজস্ব কাস্টম ডোমেইন ব্যবহার করার সুযোগ দেয়। আপনি যদি Firebase Hosting জন্য একটি কাস্টম ডোমেইন কনফিগার করেন , তাহলে Firebase SDK-গুলো ইনিশিয়ালাইজ করার সময়ও আপনি সেই কাস্টম ডোমেইনটি (আপনার web.app বা firebaseapp.com সাবডোমেইনের পরিবর্তে) নির্দিষ্ট করে দিতে পারেন। কাস্টম ডোমেইন ব্যবহারের বিষয়ে আরও বিস্তারিত জানতে, signInWithRedirect ব্যবহারের সেরা অনুশীলনগুলো দেখুন।
সংরক্ষিত ইউআরএল এবং পরিষেবা কর্মীরা
আপনি যদি একটি প্রগ্রেসিভ ওয়েব অ্যাপ (PWA) তৈরি করেন, তাহলে আপনি এমন একটি সার্ভিস ওয়ার্কার তৈরি করতে পারেন যেটিতে একটি "নেভিগেশন ফলব্যাক" থাকবে এবং প্রি-ক্যাশ করা আইটেমগুলির তালিকার সাথে না মিললে ডিফল্টরূপে একটি নির্দিষ্ট URL রেন্ডার করবে।
আপনি যদি sw-precache লাইব্রেরি ব্যবহার করেন, তাহলে আপনি একটি নেভিগেশন ফলব্যাক হোয়াইটলিস্ট সেটিং যোগ করতে পারেন যা সংরক্ষিত নেমস্পেসটিকে বাদ দেয়:
{
navigateFallbackWhitelist: [/^(?!\/__).*/]
}
সাধারণভাবে, শুধু মনে রাখবেন যে ডাবল-আন্ডারস্কোর নেমস্পেসটি ফায়ারবেস ব্যবহারের জন্য সংরক্ষিত এবং আপনার সার্ভিস ওয়ার্কারে এই অনুরোধগুলি ইন্টারসেপ্ট করা উচিত নয়।