Firebase Hosting URL ها را در سایت شما ذخیره می کند که با /__
شروع می شود. این فضای نام رزرو شده استفاده از سایر محصولات Firebase را همراه با Firebase Hosting آسانتر می کند.
این نشانیهای اینترنتی رزرو شده هم در هنگام استقرار در Firebase ( firebase deploy
) و هم زمانی که برنامه خود را روی یک سرور محلی اجرا میکنید ( firebase serve
) در دسترس هستند.
اسکریپت هایی را برای URL های رزرو شده اضافه کنید
از آنجا که Firebase Hosting هنگام استقرار از طریق HTTP/2 ارائه میشود، میتوانید با بارگیری فایلهایی از همان مبدا، عملکرد را افزایش دهید. Firebase Hosting نسخه 8 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 مدیریت چندین محیط (مانند توسعه، مرحلهبندی و تولید) را از یک پایگاه کد آسان میکند. با تکیه بر URL رزرو شده Hosting ، می توانید همان کد را در چندین پروژه Firebase مستقر کنید.
علاوه بر میزبانی خود SDK ها، فضای نام رزرو شده همچنین تمام تنظیمات لازم برای مقداردهی اولیه SDK برای پروژه Firebase مرتبط با سایت Hosting را فراهم می کند. این پیکربندی Firebase و مقداردهی اولیه SDK توسط یک اسکریپت ارائه می شود که می توانید مستقیماً آن را وارد کنید:
<!-- Load the Firebase SDKs before loading this file -->
<script src="/__/firebase/init.js"></script>
هنگامی که در Firebase مستقر می شوید یا برنامه خود را به صورت محلی آزمایش می کنید، این اسکریپت به طور خودکار Firebase JavaScript SDK را برای پروژه Firebase فعال پیکربندی می کند و SDK را مقداردهی اولیه می کند.
اگر ترجیح می دهید خودتان مقداردهی اولیه را کنترل کنید، مقادیر پیکربندی Firebase به شکل JSON نیز موجود است:
fetch('/__/firebase/init.json').then(async response => {
firebase.initializeApp(await response.json());
});
Firebase JS SDK های موجود (از URL های Hosting رزرو شده)
محصول Firebase | مرجع کتابخانه (نشانی اینترنتی رزرو شده) |
---|---|
هسته Firebase (الزامی) | <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 ، Firebase SDK for 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 (کل SDK) | <script src="/__/firebase/8.10.1/firebase.js"></script> |
یاران احراز هویت
Firebase Authentication از فضای نام رزرو شده برای ارائه جاوا اسکریپت و HTML ویژه برای تکمیل احراز هویت با ارائه دهندگان از طریق OAuth استفاده می کند. این به هر پروژه Firebase اجازه می دهد تا یک زیر دامنه Firebase منحصر به فرد داشته باشد و امنیت Firebase Authentication را افزایش دهد.
علاوه بر این، این به شما امکان می دهد از دامنه سفارشی خود برای گزینه authDomain
firebase.initializeApp()
استفاده کنید. اگر یک دامنه سفارشی را برای Firebase Hosting پیکربندی میکنید، میتوانید آن دامنه سفارشی (بهجای زیر دامنه web.app
یا firebaseapp.com
خود) را هنگام تنظیم اولیه SDKهای Firebase نیز مشخص کنید. برای جزئیات بیشتر در مورد استفاده از یک دامنه سفارشی، بهترین روشها برای استفاده از signInWithRedirect را ببینید.
نشانیهای وب رزرو شده و کارکنان خدمات
اگر در حال ساختن یک برنامه وب پیشرو (PWA) هستید، ممکن است یک سرویس دهنده ایجاد کنید که دارای "بازگشت ناوبری" باشد و اگر URL خاصی با لیست موارد از پیش ذخیره شده مطابقت نداشته باشد به طور پیش فرض ارائه می کند.
اگر از کتابخانه sw-precache استفاده میکنید، میتوانید یک تنظیم فهرست سفید بازگشتی پیمایش که فضای نام رزرو شده را حذف میکند، اضافه کنید:
{
navigateFallbackWhitelist: [/^(?!\/__).*/]
}
به طور کلی، فقط به یاد داشته باشید که فضای نام دو خط زیر برای استفاده از Firebase رزرو شده است و شما نباید این درخواستها را در سرویسکار خود رهگیری کنید.
، Firebase Hosting URL ها را در سایت شما ذخیره می کند که با /__
شروع می شود. این فضای نام رزرو شده استفاده از سایر محصولات Firebase را همراه با Firebase Hosting آسانتر می کند.
این نشانیهای اینترنتی رزرو شده هم در هنگام استقرار در Firebase ( firebase deploy
) و هم زمانی که برنامه خود را روی یک سرور محلی اجرا میکنید ( firebase serve
) در دسترس هستند.
اسکریپت هایی را برای URL های رزرو شده اضافه کنید
از آنجا که Firebase Hosting هنگام استقرار از طریق HTTP/2 ارائه میشود، میتوانید با بارگیری فایلهایی از همان مبدا، عملکرد را افزایش دهید. Firebase Hosting نسخه 8 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 مدیریت چندین محیط (مانند توسعه، مرحلهبندی و تولید) را از یک پایگاه کد آسان میکند. با تکیه بر URL رزرو شده Hosting ، می توانید همان کد را در چندین پروژه Firebase مستقر کنید.
علاوه بر میزبانی خود SDK ها، فضای نام رزرو شده همچنین تمام تنظیمات لازم برای مقداردهی اولیه SDK برای پروژه Firebase مرتبط با سایت Hosting را فراهم می کند. این پیکربندی Firebase و مقداردهی اولیه SDK توسط یک اسکریپت ارائه می شود که می توانید مستقیماً آن را وارد کنید:
<!-- Load the Firebase SDKs before loading this file -->
<script src="/__/firebase/init.js"></script>
هنگامی که در Firebase مستقر می شوید یا برنامه خود را به صورت محلی آزمایش می کنید، این اسکریپت به طور خودکار Firebase JavaScript SDK را برای پروژه Firebase فعال پیکربندی می کند و SDK را مقداردهی اولیه می کند.
اگر ترجیح می دهید خودتان مقداردهی اولیه را کنترل کنید، مقادیر پیکربندی Firebase به شکل JSON نیز موجود است:
fetch('/__/firebase/init.json').then(async response => {
firebase.initializeApp(await response.json());
});
Firebase JS SDK های موجود (از URL های Hosting رزرو شده)
محصول Firebase | مرجع کتابخانه (نشانی اینترنتی رزرو شده) |
---|---|
هسته Firebase (الزامی) | <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 ، Firebase SDK for 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 (کل SDK) | <script src="/__/firebase/8.10.1/firebase.js"></script> |
یاران احراز هویت
Firebase Authentication از فضای نام رزرو شده برای ارائه جاوا اسکریپت و HTML ویژه برای تکمیل احراز هویت با ارائه دهندگان از طریق OAuth استفاده می کند. این به هر پروژه Firebase اجازه می دهد تا یک زیر دامنه Firebase منحصر به فرد داشته باشد و امنیت Firebase Authentication را افزایش دهد.
علاوه بر این، این به شما امکان می دهد از دامنه سفارشی خود برای گزینه authDomain
firebase.initializeApp()
استفاده کنید. اگر یک دامنه سفارشی را برای Firebase Hosting پیکربندی میکنید، میتوانید آن دامنه سفارشی (بهجای زیر دامنه web.app
یا firebaseapp.com
خود) را هنگام تنظیم اولیه SDKهای Firebase نیز مشخص کنید. برای جزئیات بیشتر در مورد استفاده از یک دامنه سفارشی، بهترین روشها برای استفاده از signInWithRedirect را ببینید.
نشانیهای وب رزرو شده و کارکنان خدمات
اگر در حال ساختن یک برنامه وب پیشرو (PWA) هستید، ممکن است یک سرویس دهنده ایجاد کنید که دارای "بازگشت ناوبری" باشد و اگر URL خاصی با لیست موارد از پیش ذخیره شده مطابقت نداشته باشد به طور پیش فرض ارائه می کند.
اگر از کتابخانه sw-precache استفاده میکنید، میتوانید یک تنظیم فهرست سفید بازگشتی پیمایش که فضای نام رزرو شده را حذف میکند، اضافه کنید:
{
navigateFallbackWhitelist: [/^(?!\/__).*/]
}
به طور کلی، فقط به یاد داشته باشید که فضای نام دو خط زیر برای استفاده از Firebase رزرو شده است و شما نباید این درخواستها را در سرویسکار خود رهگیری کنید.