如何禁用Firebase SDK v10.6.0的自动配置请求?
如何禁用Firebase Auth SDK自动请求
init.json的功能? 可以通过手动初始化Auth实例的方式禁用这个自动请求,具体步骤如下:
解决方案
Firebase JS SDK的getAuth是便捷初始化方法,会自动尝试从Firebase托管域名拉取init.json补充配置。改用initializeAuth手动初始化Auth实例,可跳过自动检测流程,避免该请求。
修改后的代码示例
import { initializeApp } from 'firebase/app'; // 替换getAuth为initializeAuth import { initializeAuth, signInWithRedirect } from 'firebase/auth'; const firebaseApp = initializeApp( { apiKey: process.env.FIREBASE_API_KEY, authDomain: process.env.FIREBASE_AUTH_DOMAIN, projectId: process.env.FIREBASE_PROJECT_ID }, 'auth-app' ); // 用initializeAuth手动初始化Auth实例,无需额外配置即可跳过自动检测 const firebaseAuth = initializeAuth(firebaseApp); const signIn = (email, providerId) => { const provider = new OAuthProvider(providerId); const redirectParams = getRedirectParams(); provider.setCustomParameters({ login_hint: email, ...redirectParams, }); signInWithRedirect(firebaseAuth, provider); }
原理说明
getAuth方法会默认触发自动配置检测:即使你已手动初始化Firebase App,SDK仍会尝试访问https://<project-id>.firebaseapp.com/__/firebase/init.json,以获取可能的额外配置(比如Auth重定向相关参数)。initializeAuth是手动初始化入口,要求开发者明确控制Auth实例的所有配置,因此不会触发任何自动检测请求,完全基于你提供的App配置运行。
该方法适用于Firebase JS SDK v9及以上版本(包括你使用的v10.6.0),能直接消除500-1000ms的额外请求耗时,优化认证流程速度。
内容的提问来源于stack exchange,提问作者oliakaoil
相关产品推荐
相关产品推荐

