從保留的網址載入 Firebase SDK

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

強烈建議您只載入會 您在應用程式中所用的資訊為何。例如,如果只加入 AuthenticationCloud 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.appfirebaseapp.com 子網域)。如要進一步瞭解如何使用自訂網域,請參閱「使用 signInWithRedirect 的最佳做法」。

保留的網址和服務工作站

如要建構漸進式網頁應用程式 (PWA),可建立 Service 設有「導覽備用廣告」的 worker並根據預設呈現特定網址 。

如果使用 sw-precache 您可以新增瀏覽備用許可清單設定,將 預留命名空間:

{
  navigateFallbackWhitelist: [/^(?!\/__).*/]
}

一般來說,請記得雙底線命名空間 Firebase 用量,且不應在服務中攔截這些要求 工作站