部署Firebase项目时出现Error fetching access token错误求助
问题解决:Firebase部署凭证警告与Hosting页面空白
一、@firebase/database app/invalid-credential 警告
原因
metadata.google.internal 是Google Cloud内部元数据服务域名,仅在GCP托管环境(如Cloud Functions、App Engine)内可正常解析。你在树莓派本地执行 firebase deploy 时,本地DNS无法识别该内部域名,导致Firebase SDK尝试获取OAuth2令牌失败,触发重复警告。
修复步骤
- 显式指定服务账号凭证
- 从Firebase控制台下载服务账号密钥(JSON格式),保存到项目
functions目录,命名为service-account-key.json - 修改
functions/index.js中的Firebase初始化代码,手动传入凭证:const admin = require('firebase-admin'); const serviceAccount = require('./service-account-key.json'); admin.initializeApp({ credential: admin.credential.cert(serviceAccount), databaseURL: 'https://maison-94615-default-rtdb.firebaseio.com' // 替换为你的数据库URL });
- 从Firebase控制台下载服务账号密钥(JSON格式),保存到项目
- 升级过时的firebase-functions
日志提示版本过时,执行以下命令升级:
注意:升级包含破坏性变更,建议先备份代码,参考官方文档适配。cd functions npm install --save firebase-functions@latest
二、Hosting页面仅显示顶部横幅、内容为空
排查与修复
- 清除缓存并重新部署Hosting
本地调试可能残留缓存,导致页面加载异常:- 清除浏览器缓存(Ctrl+Shift+Delete)
- 单独重新部署Hosting:
firebase deploy --only hosting
- 检查public目录资源
确认项目根目录public文件夹包含完整HTML/CSS/JS文件,且页面内资源引用路径正确。若依赖的JS/CSS未加载,会导致内容无法渲染。 - 验证firebase.json配置
检查firebase.json的Hosting配置,确保静态资源路径和函数重写规则正确。示例配置:{ "hosting": { "public": "public", "rewrites": [ { "source": "/login", "function": "login" } ] } } - 查看浏览器开发者工具
访问Hosting URL时按F12打开开发者工具,查看Console和Network标签页,定位资源加载失败或JS报错问题。
额外提示
- 日志中提到的构建镜像清理错误,可重新部署或登录GCP控制台手动删除指定路径的镜像,避免产生不必要费用。
内容的提问来源于stack exchange,提问作者Brice
相关产品推荐
相关产品推荐

