部署Firebase函数遇Refresh token缺失client_id错误求助
解决Firebase函数部署时"Refresh token must contain a 'client_id' property"错误
以下是针对该错误的排查和解决步骤:
1. 重新认证Firebase CLI
尽管你已确认firebase projects:list正常,但本地认证缓存可能存在异常。执行以下命令重新完成登录流程:
firebase logout firebase login
登录时确保选择对应项目的Google账号,并完成完整的权限授权。
2. 升级Firebase依赖版本
你当前使用的firebase-admin(9.8.0)和firebase-functions(3.18.0)版本较旧,旧版本可能与新版Firebase CLI存在兼容性问题。执行命令升级依赖:
cd functions npm install --save firebase-admin@latest firebase-functions@latest
注意升级后可能需要适配新版本的破坏性变更,可参考官方的版本升级说明调整代码。
3. 重置本地Firebase认证文件
Firebase CLI的认证信息存储在本地~/.config/firebase目录下,若该目录下的token文件损坏会引发异常。可删除该目录后重新登录:
# macOS/Linux系统 rm -rf ~/.config/firebase # Windows系统 rd /s /q %USERPROFILE%\.config\firebase
删除后重新执行firebase login完成认证。
4. 排查环境变量冲突
你提到加载了.env.development环境变量,检查该文件中是否存在FIREBASE_CLIENT_ID、FIREBASE_REFRESH_TOKEN等与认证相关的变量,错误的配置值会干扰Admin SDK初始化。可暂时重命名该文件,再尝试部署验证问题是否解决。
5. 检查GOOGLE_APPLICATION_CREDENTIALS变量
若本地设置了GOOGLE_APPLICATION_CREDENTIALS环境变量,且指向的密钥文件无效或不存在,会导致Admin SDK初始化异常。检查该变量状态:
# macOS/Linux系统 echo $GOOGLE_APPLICATION_CREDENTIALS # Windows系统 echo %GOOGLE_APPLICATION_CREDENTIALS%
若该变量指向无效文件,建议取消设置,让Admin SDK使用部署环境的默认认证配置。
内容的提问来源于stack exchange,提问作者noninertialframe
相关产品推荐
相关产品推荐

