Catch up on everything announced at Firebase Summit, and learn how Firebase can help you accelerate app development and run your app with confidence. Learn More

從保留的 URL 加載 Firebase SDK

透過集合功能整理內容 你可以依據偏好儲存及分類內容。

Firebase 託管在您的網站中保留以/__開頭的網址。這個保留的命名空間讓其他 Firebase 產品更容易與 Firebase 託管一起使用。

當您部署到 Firebase ( firebase deploy ) 或在本地服務器上運行您的應用程序 ( firebase serve ) 時,這些保留的 URL 都可用。

為保留的 URL 添加腳本

由於 Firebase 託管在部署時通過 HTTP/2 提供服務,因此您可以通過從同一來源加載文件來提高性能。 Firebase 託管通過格式如下的特殊 URL 提供 Firebase JavaScript SDK 版本 8:

/__/firebase/JS_SDK_VERSION/FIREBASE_SDK_NAME.js

我們強烈建議僅加載您在應用中使用的。例如,要僅包含身份驗證和 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,您可以將相同的代碼部署到多個 Firebase 項目。

除了託管 SDK 本身之外,保留的命名空間還提供為與託管站點關聯的 Firebase 項目初始化 SDK 所需的所有配置。此 Firebase 配置和 SDK 初始化由您可以直接包含的腳本提供:

<!-- 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());
});

可用的 Firebase JS SDK(來自保留的託管 URL)

火力地堡產品庫參考(保留 URL)
火力地堡核心
(必需的)
<script src="/__/firebase/8.10.1/firebase-app.js"></script>
分析
<script src="/__/firebase/8.10.1/firebase-analytics.js"></script>
應用檢查
<script src="/__/firebase/8.10.1/firebase-app-check.js"></script>
驗證
<script src="/__/firebase/8.10.1/firebase-auth.js"></script>
雲端 Firestore
<script src="/__/firebase/8.10.1/firebase-firestore.js"></script>
Firebase 客戶端 SDK 的雲函數
<script src="/__/firebase/8.10.1/firebase-functions.js"></script>
Firebase 安裝
<script src="/__/firebase/8.10.1/firebase-installations.js"></script>
雲消息
<script src="/__/firebase/8.10.1/firebase-messaging.js"></script>

為了獲得使用雲消息傳遞的最佳體驗,還添加了 Firebase SDK for Analytics。

雲儲存
<script src="/__/firebase/8.10.1/firebase-storage.js"></script>
性能監控
測試版)
<script src="/__/firebase/8.10.1/firebase-performance.js"></script>
實時數據庫
<script src="/__/firebase/8.10.1/firebase-database.js"></script>
遠程配置
測試版)
<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 身份驗證使用保留的命名空間提供特殊的 JavaScript 和 HTML 以通過 OAuth 完成與提供者的身份驗證。這允許每個 Firebase 項目都有一個唯一的 Firebase 子域,從而提高 Firebase 身份驗證的安全性。

此外,這允許您將自己的自定義域用於firebase.initializeApp()authDomain選項。如果您為 Firebase 託管配置自定義域,則還可以在初始化 Firebase SDK 時指定該自定義域(而不是您的web.appfirebaseapp.com子域)。

保留的 URL 和服務人員

如果您正在構建漸進式 Web 應用程序 (PWA),您可能會創建一個具有“導航回退”的服務工作者,如果它與預緩存項列表不匹配,則默認呈現特定 URL。

如果您使用的是sw-precache庫,則可以添加排除保留命名空間的導航回退白名單設置:

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

通常,請記住雙下劃線命名空間是為 Firebase 使用保留的,您不應該在 service worker 中攔截這些請求。