Después de actualizar Firebase de V8 a V9, solo en la versión móvil, hay un IFRAME que carga un archivo javascript enorme ( 263 K ) de https://[Firebase projectId].firebaseapp.com/__/auth/iframe.js (ver imagen a continuación ):
La única pista que he encontrado hasta ahora es que podría estar relacionado con las restricciones de cookies de terceros en Chrome como se menciona en este foro: https://groups.google.com/g/firebase-talk/c/TC1xTPG85EI .
No estoy usando ninguna restricción de cookies en Chrome, ya que todas las cookies están permitidas según la configuración aquí: chrome://settings/cookies?search=cookies
Además, deshabilité la protección de Navegación segura mejorada y la configuré en Sin protección (no recomendado) aquí: chrome://settings/security?search=cookies
pero iframe.js todavía se está cargando en modo móvil.
Estoy usando la biblioteca firebase@9.0.0-beta.8 con fragmentos de código modulares (no compatibles) de la versión 9 aquí: https://firebase.google.com/docs/web/modular-upgrade .
Se agradecerá cualquier idea o pista sobre cómo deshacerse de este enorme archivo iframe.js. A pesar de que la biblioteca es BETA, todo lo demás funciona como se esperaba con la sacudida del árbol que redujo considerablemente el tamaño del paquete del lado del cliente.
Puedes probar con Lighthouse en mi sitio web personal aquí: https://guydumais.digital
¡Gracias de antemano, nos vemos!
También tuvimos este problema durante bastante tiempo, recientemente encontré este enlace https://firebase.google.com/docs/auth/web/custom-dependencies
En los navegadores móviles, la biblioteca abrirá automáticamente un iframe en su dominio de autenticación de forma preventiva. Esto se hace para que la experiencia sea perfecta para la mayoría de los usuarios, pero puede afectar el rendimiento al cargar código adicional justo cuando se inicia la aplicación. Este comportamiento se puede evitar utilizando initializeAuth() y pasando manualmente la dependencia browserPopupRedirectResolver a las funciones que la necesitan.
import {initializeAuth, browserLocalPersistence, browserPopupRedirectResolver, indexedDBLocalPersistence, signInWithRedirect, GoogleAuthProvider} from "firebase/auth"; import {initializeApp} from "firebase/app"; const app = initializeApp({/** Your app config */}); const auth = initializeAuth(app, { persistence: [indexedDBLocalPersistence, browserLocalPersistence], }); // Later signInWithRedirect(auth, new GoogleAuthProvider(), browserPopupRedirectResolver);Aquí va mi solución. Solo importo dinámicamente la autenticación de firebase cuando la necesito. Por lo tanto, no lo llamo en toda la aplicación, solo cuando hago una solicitud a firebase. Si tiene una aplicación pequeña o mediana, no debería ser demasiado trabajo. Sugerencia : para mantener el estado de usuario actual, use cookies.
const onSubmit = async () => { const { getAuth } = await import("firebase/auth"); getAuth(firebase); }