Firebase Hosting 會在網站中保留開頭為 /__
的網址。這個
預留命名空間方便您與其他 Firebase 產品搭配使用
Firebase Hosting。
部署至 Firebase 時,即可使用這些保留網址
(firebase deploy
) 或在本機伺服器上執行應用程式時
(firebase serve
).
為保留的網址新增指令碼
Firebase Hosting 在部署時是透過 HTTP/2 提供,因此可以提高 從相同來源載入檔案來提高效能Firebase Hosting 會透過特殊網址提供 Firebase JavaScript SDK 的第 8 版,格式如下:
/__/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 網址,您可以將同一程式碼部署至多個 Firebase Google Cloud 的 Resource Manager 工具 經特別設計,能以程式輔助方式協助您管理專案
除了代管 SDK 本身外,預留的命名空間還提供 為 Firebase 初始化 SDK 所需的所有設定 與 Hosting 網站相關聯的專案。這項 Firebase 設定 SDK 初始化是由指令碼提供,您可以直接加入:
<!-- Load the Firebase SDKs before loading this file -->
<script src="/__/firebase/init.js"></script>
部署至 Firebase 或在本機測試應用程式時,這個指令碼會自動完成 設定 Firebase JavaScript SDK 有效的 Firebase 專案,並初始化 SDK。
如果您想自行控制初始化作業,也可以使用 JSON 格式提供 Firebase 設定值:
fetch('/__/firebase/init.json').then(async response => {
firebase.initializeApp(await response.json());
});
可用的 Firebase JS SDK (透過預留的 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 上享有最佳體驗,請一併新增 Analytics 專用的 Firebase SDK。 |
Cloud Storage | <script src="/__/firebase/8.10.1/firebase-storage.js"></script> |
Performance Monitoring
(Beta 版發布) |
<script src="/__/firebase/8.10.1/firebase-performance.js"></script> |
Realtime Database | <script src="/__/firebase/8.10.1/firebase-database.js"></script> |
Remote Config敬上
(Beta 版) |
<script src="/__/firebase/8.10.1/firebase-remote-config.js"></script> 為了在使用 Remote Config 上享有最佳體驗,請一併新增 Analytics 專用的 Firebase SDK。 |
Firebase JavaScript SDK (整個 SDK) |
<script src="/__/firebase/8.10.1/firebase.js"></script> |
驗證輔助程式
Firebase Authentication 會使用預留項目 命名空間,提供特殊的 JavaScript 和 HTML 來完成 透過 OAuth 管理供應商因此每項 Firebase 專案 Firebase 子網域,提高 Firebase Authentication 的安全性。
此外,您也可以使用自己的自訂網域來設定 firebase.initializeApp()
的 authDomain
選項。如果您為 Firebase Hosting設定自訂網域,也可以在初始化 Firebase SDK 時指定該自訂網域 (而非 web.app
或 firebaseapp.com
子網域)。如要進一步瞭解如何使用自訂網域,請參閱「使用 signInWithRedirect 的最佳做法」。
保留的網址和服務工作站
如要建構漸進式網頁應用程式 (PWA),可建立 Service 設有「導覽備用廣告」的 worker並根據預設呈現特定網址 。
如果使用 sw-precache 您可以新增瀏覽備用許可清單設定,將 預留命名空間:
{
navigateFallbackWhitelist: [/^(?!\/__).*/]
}
一般來說,請記得雙底線命名空間 Firebase 用量,且不應在服務中攔截這些要求 工作站