获取我们在 Firebase 峰会上发布的所有信息,了解 Firebase 可如何帮助您加快应用开发速度并满怀信心地运行应用。了解详情

从保留的 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 中拦截这些请求。