URL reservadas

Firebase Hosting reserva las URL de tu sitio que comienzan con /__. Este espacio de nombres reservado facilita el uso de otras funciones de Firebase junto con Firebase Hosting. Estas URL reservadas están disponibles cuando se implementan y durante la ejecución local de firebase serve.

SDK de Firebase

Debido a que Firebase Hosting se transmite a través de HTTP/2 cuando se implementa, puedes aumentar el rendimiento a través de la carga de archivos desde el mismo origen. Firebase Hosting transmite todas las versiones del SDK de Firebase JS desde URL especiales que tienen el siguiente formato:

/__/firebase/{version}/{sdk-file}.js

Recomendamos cargar solo las partes del SDK que vayas a usar. Por ejemplo, si usas Firebase Authentication y Cloud Storage juntos, solo necesitas incluir las siguientes secuencias de comandos:

<script src="/__/firebase/5.4.1/firebase-app.js"></script>
<script src="/__/firebase/5.4.1/firebase-auth.js"></script>
<script src="/__/firebase/5.4.1/firebase-storage.js"></script>

Todas las versiones del SDK de Firebase se alojan de esta manera y las nuevas versiones pasan a estar disponibles en cuanto se lanzan.

Configuración automática del SDK

Además de alojar los SDK en sí, el espacio de nombres reservado también proporciona toda la configuración necesaria para inicializar el SDK del proyecto asociado con el sitio de Firebase Hosting. Esto se proporciona como una secuencia de comandos que puedes incluir directamente:

<!-- load Firebase SDK before loading this file -->
<script src="/__/firebase/init.js"></script>

Esta secuencia de comandos configura automáticamente la aplicación predeterminada del SDK de Firebase. Si prefieres controlar la inicialización personalmente, los valores de configuración también están disponibles en formato JSON:

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

La configuración automática de SDK facilita la administración de múltiples entornos (como los de desarrollo, etapa de pruebas y producción) desde una sola base de código. Como se usa una URL reservada, puedes implementar el mismo código en varios proyectos de Firebase.

Auxiliares de Auth

Firebase Authentication usa el espacio de nombres reservado para proporcionar elementos JavaScript y HTML especiales a fin de completar la autenticación con los proveedores mediante OAuth. Esto permite que cada uno de nuestros clientes tenga un dominio único para sus proyectos, lo que aumenta la seguridad de Firebase Authentication.

Además, esto te permite usar tu propio dominio personalizado para la opción authDomain de firebase.initializeApp(). Si configuraste un dominio personalizado para Firebase Hosting, puedes especificar ese dominio en lugar de tu subdominio de firebaseapp.com cuando inicialices los SDK de Firebase.

URL reservadas y service workers

Si vas a crear una app web progresiva, puedes crear un service worker que tenga una opción de navegación como resguardo y muestre una URL específica en forma predeterminada si no coincide con una lista de elementos almacenados en caché previamente. Para que Firebase Hosting funcione de forma correcta, debes inhabilitar el resguardo del espacio de nombres /__.

Si usas la biblioteca sw-precache, puedes agregar una lista blanca de resguardos de navegación que excluya el espacio de nombres reservado:

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

En general, recuerda que el espacio de nombres con doble guion bajo está reservado para que lo use Firebase y no debes interceptar estas solicitudes con tu service worker.

Enviar comentarios sobre...

Si necesitas ayuda, visita nuestra página de asistencia.