You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Firebase Google signInWithPopup仅移动端可用 桌面端弹窗空白

React项目Firebase Google弹窗登录桌面端白屏问题排查方案

问题现象

  • 桌面端点击登录触发按钮后,弹出的Google授权窗口显示空白,但窗口内URL地址正确,异常弹窗截图:
    PopUp Screen Image
  • 移动端执行完全相同的操作时,可正常跳转至Google账号选择流程完成授权,项目中Firebase的其余功能均可正常运行。
  • 桌面端触发登录时控制台存在报错信息,报错截图:
    Console error messages image

现有实现代码

Firebase鉴权封装代码

const app = initializeApp(firebaseConfig);
export const auth = getAuth(app);
var provider = new GoogleAuthProvider();

export const signInWithGoogle = () => {
  return signInWithPopup(auth, provider);
}

登录页面代码

import React from 'react'
import { signInWithGoogle } from "../Firebase";

const Login = () => {

    function InitWithGoogle() {
        signInWithGoogle();
    }

    return (
           <button type="button" onClick={InitWithGoogle} className="login-with-google-btn" >Sign in with Google</button>

    )
}

export default Login

排查解决步骤

  • 第一步先检查浏览器安全配置
    桌面端弹窗白屏但移动端正常,90%以上是浏览器第三方Cookie拦截、弹窗拦截导致。signInWithPopup的授权流程依赖跨域Cookie存储登录态,Chrome、Edge等新版浏览器默认开启第三方Cookie拦截,或者在无痕模式下,会直接阻断授权页的请求加载导致白屏。
    操作方式:打开浏览器站点设置,找到当前项目运行的域名(本地开发就是localhost),放开第三方Cookie权限,临时关闭广告拦截、弹窗拦截插件后重试。移动端因为默认拉起系统浏览器走跳转授权,不受页面内弹窗的跨域Cookie限制,所以可以正常登录。
  • 第二步核对Firebase控制台配置
    进入Firebase控制台的Authentication模块,打开登录方法配置页:
    1. 确认Google登录提供方已经处于启用状态
    2. 检查已授权域名列表,确保当前项目的访问域名(本地开发地址、线上部署域名)都已经添加到列表中,未授权的域名发起登录请求会直接被Google拦截导致白屏。
  • 第三步补全错误捕获逻辑定位具体报错
    现有代码没有捕获登录流程的抛出错误,先给调用逻辑补全catch分支,打印完整错误信息:
    function InitWithGoogle() {
      signInWithGoogle()
        .then((res) => {
          // 此处写登录成功后的业务逻辑
          console.log('登录成功', res.user)
        })
        .catch((err) => {
          // 打印完整错误码和错误信息,根据错误码可直接定位官方对应问题原因
          console.error('登录异常', err.code, err.message)
        })
    }
    
    如果控制台抛出auth/popup-blocked错误,说明弹窗被浏览器判定为非用户主动触发拦截,注意signInWithPopup必须在用户点击事件的同步逻辑里直接调用,不能包裹在接口请求、setTimeout、Promise等异步回调后执行,否则会被浏览器拦截。
  • 兜底兼容方案
    如果确认是浏览器安全策略限制导致弹窗模式无法兼容,直接替换为signInWithRedirect跳转式登录,该模式不依赖弹窗和跨域第三方Cookie,桌面端、移动端兼容性更强,不会出现白屏问题。

内容的提问来源于stack exchange,提问作者Malcon Cambronero

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.27 13:15:42