Google 致力于为黑人社区推动种族平等。查看具体举措

Загрузить SDK Firebase с зарезервированных URL

Firebase хостинг резервов URL - адресов на вашем сайте , начиная с /__ . Это зарезервированное пространство имен упрощает использование других продуктов Firebase вместе с хостингом Firebase.

Эти зарезервированные адреса доступны как при развертывании в Firebase ( firebase deploy ) или при запуске приложения на локальном сервере ( firebase serve ).

Добавить скрипты для зарезервированных URL

Поскольку при развертывании хостинг Firebase обслуживается через HTTP / 2, вы можете повысить производительность, загрузив файлы из одного источника. Firebase Hosting обслуживает все версии Firebase JavaScript SDK со специальных URL-адресов, отформатированных следующим образом:

/__/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.0/firebase-app.js"></script>

  <!-- Add Firebase products that you want to use -->
  <script src="/__/firebase/8.10.0/firebase-auth.js"></script>
  <script src="/__/firebase/8.10.0/firebase-firestore.js"></script>
</body>

Автоконфигурация SDK

Автоматическая конфигурация SDK упрощает управление несколькими средами (такими как разработка, подготовка и производство) из единой базы кода. Опираясь на зарезервированный URL-адрес хостинга, вы можете развернуть один и тот же код в нескольких проектах Firebase.

Помимо размещения самих SDK, зарезервированное пространство имен также предоставляет всю конфигурацию, необходимую для инициализации SDK для проекта Firebase, связанного с сайтом хостинга. Эта конфигурация 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());
});

Доступные SDK Firebase JS (из зарезервированных URL-адресов хостинга)

Продукт Firebase Ссылка на библиотеку (зарезервированный URL)
Ядро Firebase
(требуется)
<script src="/__/firebase/8.10.0/firebase-app.js"></script>
Аналитика
<script src="/__/firebase/8.10.0/firebase-analytics.js"></script>
Проверка приложения
<script src="/__/firebase/8.10.0/firebase-app-check.js"></script>
Аутентификация
<script src="/__/firebase/8.10.0/firebase-auth.js"></script>
Cloud Firestore
<script src="/__/firebase/8.10.0/firebase-firestore.js"></script>
Облачные функции для клиентского SDK Firebase
<script src="/__/firebase/8.10.0/firebase-functions.js"></script>
Обмен сообщениями в облаке
<script src="/__/firebase/8.10.0/firebase-messaging.js"></script>

Для оптимального использования облачных сообщений добавьте также Firebase SDK для аналитики.

Облачное хранилище
<script src="/__/firebase/8.10.0/firebase-storage.js"></script>
Мониторинг производительности
(Бета - версия)
<script src="/__/firebase/8.10.0/firebase-performance.js"></script>
База данных в реальном времени
<script src="/__/firebase/8.10.0/firebase-database.js"></script>
Удаленная конфигурация
(Бета - версия)
<script src="/__/firebase/8.10.0/firebase-remote-config.js"></script>

Для оптимальной работы с Remote Config добавьте также Firebase SDK для аналитики.

SDK Firebase для JavaScript
(весь SDK)
<script src="/__/firebase/8.10.0/firebase.js"></script>

Помощники аутентификации

Firebase аутентификация использует зарезервированное пространство имен , чтобы обеспечить специальный JavaScript и HTML для полной аутентификации с поставщиками через OAuth. Это позволяет каждому проекту Firebase иметь уникальный субдомен Firebase, повышая безопасность аутентификации Firebase.

Кроме того, это позволяет использовать свой собственный домен для authDomain опции firebase.initializeApp() . Если настроить пользовательский домен для Firebase хостинга, то вы можете также указать , что пользовательский домен (вместо вашего web.app или firebaseapp.com субдомен) при инициализации Firebase SDKs.

Зарезервированные URL-адреса и сервис-воркеры

Если вы создаете прогрессивное веб-приложение (PWA), вы можете создать сервис-воркер, у которого есть «резервная навигация» и который по умолчанию отображает определенный URL-адрес, если он не соответствует списку предварительно кэшированных элементов.

Если вы используете SW-предварительное кэширование библиотеки, вы можете добавить навигационный запасной вариант настройки белого списка , который исключает зарезервированное пространство имен:

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

В общем, просто помните, что пространство имен с двойным подчеркиванием зарезервировано для использования Firebase и что вы не должны перехватывать эти запросы в своем сервис-воркере.