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

Firebase v9 compat集成App Check部署Vercel报getToken未定义错误求助

报错修复方案

该报错核心由两个问题导致:v9 compat版App Check的activate方法参数格式变更,以及Vercel前端环境变量未正确暴露。

修复步骤

  • 调整App Check激活代码
    v9 compat版本不再支持直接传布尔值作为activate的第二个参数,需改为配置对象格式,替换对应代码即可:
import firebase from 'firebase/compat/app';
import 'firebase/compat/database'
import 'firebase/compat/app-check'

const config = {
  apiKey: process.env.FIREBASE_API_KEY,
  authDomain: process.env.FIREBASE_AUTH_DOMAIN,
  databaseURL: process.env.FIREBASE_DATABASE_URL,
  projectId: process.env.FIREBASE_PROJECT_ID,
  storageBucket: process.env.FIREBASE_STORAGE_BUCKET,
  messagingSenderId: process.env.FIREBASE_MESSAGING_SENDER_ID
};

if (!firebase.apps.length) {
  firebase.initializeApp(config);
  const appCheck = firebase.appCheck();
  appCheck.activate(
    process.env.GOOGLE_APP_CHECK_SITE_KEY,
    {
      isTokenAutoRefreshEnabled: true
    }
  );
}

const database = firebase.database();
export { firebase, database as default };
  • 配置Vercel环境变量
    进入Vercel对应项目的环境变量管理页:
  1. 确认已添加GOOGLE_APP_CHECK_SITE_KEY变量,值为你的reCAPTCHA v3公钥
  2. 开启该变量的「Expose to Browser」选项,否则前端代码运行时无法读取到变量值
  • SSR框架额外适配(如Next.js)
    如果项目使用SSR/SSG框架,需限制App Check仅在浏览器端初始化,避免服务端无浏览器环境报错:
// 新增window环境判断
if (!firebase.apps.length && typeof window !== 'undefined') {
  firebase.initializeApp(config);
  const appCheck = firebase.appCheck();
  appCheck.activate(
    process.env.GOOGLE_APP_CHECK_SITE_KEY,
    {
      isTokenAutoRefreshEnabled: true
    }
  );
}
  • 依赖校验(可选)
    如果修改后仍报错,确认所有firebase相关依赖版本号统一,删除node_modules和锁文件后重新安装依赖再部署即可。

内容的提问来源于stack exchange,提问作者i-am-niall

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 06:18:03