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

Cargue SDK de Firebase desde URL reservadas

Firebase Hosting reserva URL en su sitio que comienzan con /__ . Este espacio de nombres reservado facilita el uso de otros productos de Firebase junto con Firebase Hosting.

Estas URL reservadas están disponibles tanto cuando implementa en Firebase ( firebase deploy ) como cuando ejecuta su aplicación en un servidor local ( firebase serve ).

Agregar scripts para URL reservadas

Debido a que Firebase Hosting funciona a través de HTTP/2 cuando se implementa, puede aumentar el rendimiento al cargar archivos desde el mismo origen. Firebase Hosting sirve todas las versiones del SDK de JavaScript de Firebase desde URL especiales formateadas de la siguiente manera:

/__/firebase/JS_SDK_VERSION/FIREBASE_SDK_NAME.js

Recomendamos enfáticamente cargar solo las bibliotecas que usa en su aplicación. Por ejemplo, para incluir solo autenticación y Cloud Firestore, agregue las siguientes secuencias de comandos al final de su etiqueta <body> , pero antes de usar cualquier servicio de 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>

Configuración automática de SDK

La configuración automática de SDK facilita la administración de múltiples entornos (como desarrollo, preparación y producción) desde una única base de código. Al confiar en la URL de hospedaje reservada, puede implementar el mismo código en varios proyectos de Firebase.

Además de hospedar los propios SDK, el espacio de nombres reservado también proporciona toda la configuración necesaria para inicializar el SDK para el proyecto de Firebase asociado con el sitio de hospedaje. Esta configuración de Firebase y la inicialización del SDK se proporcionan mediante un script que puede incluir directamente:

<!-- Load the Firebase SDKs before loading this file -->
<script src="/__/firebase/init.js"></script>

Cuando implementa en Firebase o prueba su aplicación localmente, este script configura automáticamente el SDK de JavaScript de Firebase para el proyecto de Firebase activo e inicializa el SDK.

Si prefiere controlar la inicialización usted mismo, los valores de configuración de Firebase también están disponibles en formato JSON:

fetch('/__/firebase/init.json').then(async response => {
  firebase.initializeApp(await response.json());
});

SDK de Firebase JS disponibles (desde URL de hospedaje reservadas)

producto base de fuego Referencia de la biblioteca (URL reservada)
Núcleo de base de fuego
(requerido)
<script src="/__/firebase/8.10.1/firebase-app.js"></script>
Analítica
<script src="/__/firebase/8.10.1/firebase-analytics.js"></script>
Comprobación de la aplicación
<script src="/__/firebase/8.10.1/firebase-app-check.js"></script>
Autenticación
<script src="/__/firebase/8.10.1/firebase-auth.js"></script>
Tienda de fuego en la nube
<script src="/__/firebase/8.10.1/firebase-firestore.js"></script>
Cloud Functions para el SDK de cliente de Firebase
<script src="/__/firebase/8.10.1/firebase-functions.js"></script>
Instalaciones de base de fuego
<script src="/__/firebase/8.10.1/firebase-installations.js"></script>
Mensajería en la nube
<script src="/__/firebase/8.10.1/firebase-messaging.js"></script>

Para una experiencia óptima con Cloud Messaging, agregue también Firebase SDK for Analytics.

Almacenamiento en la nube
<script src="/__/firebase/8.10.1/firebase-storage.js"></script>
Supervisión del rendimiento
( versión beta )
<script src="/__/firebase/8.10.1/firebase-performance.js"></script>
Base de datos en tiempo real
<script src="/__/firebase/8.10.1/firebase-database.js"></script>
Configuración remota
( versión beta )
<script src="/__/firebase/8.10.1/firebase-remote-config.js"></script>

Para una experiencia óptima con Remote Config, agregue también Firebase SDK for Analytics.

SDK de JavaScript de Firebase
(SDK completo)
<script src="/__/firebase/8.10.1/firebase.js"></script>

Ayudantes de autenticación

Firebase Authentication usa el espacio de nombres reservado para proporcionar JavaScript y HTML especiales para completar la autenticación con los proveedores a través de OAuth. Esto permite que cada proyecto de Firebase tenga un subdominio de Firebase único, lo que aumenta la seguridad de la autenticación de Firebase.

Además, esto le permite usar su propio dominio personalizado para la opción authDomain de firebase.initializeApp() . Si configura un dominio personalizado para Firebase Hosting, también puede especificar ese dominio personalizado (en lugar de su subdominio web.app o firebaseapp.com ) al inicializar los SDK de Firebase.

Trabajadores de servicios y URL reservadas

Si está creando una aplicación web progresiva (PWA), puede crear un trabajador de servicio que tenga un "retroceso de navegación" y represente una URL específica de forma predeterminada si no coincide con una lista de elementos precaché.

Si está utilizando la biblioteca sw-precache , puede agregar una configuración de lista blanca alternativa de navegación que excluya el espacio de nombres reservado:

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

En general, recuerde que el espacio de nombres de doble guión bajo está reservado para el uso de Firebase y que no debe interceptar estas solicitudes en su trabajador de servicio.