Cloud Run上Firebase应用环境变量问题:Vite部署后API_KEY未定义
Firebase API Key在Cloud Run部署后undefined的原因分析
以下是可能导致该问题的几个常见原因:
构建阶段未正确注入环境变量
Vite在生产构建时会静态替换import.meta.env变量。如果是本地构建dist包后上传到Cloud Run,要确保本地构建时用的是正确的.env.production文件;如果是在Cloud Run上实时构建,必须保证构建过程能读取到VITE_APP_API_KEY——要么把.env.production包含在部署包中,要么在Cloud Run的环境变量配置里直接设置该变量。.env.production未被纳入部署包
若使用Docker部署,检查Dockerfile是否复制了.env.production文件。比如如果Dockerfile只复制了src/、package.json等文件,遗漏了.env.production,构建时就无法读取到密钥,最终打包后的代码中该变量会是undefined。环境变量格式错误
确认.env文件中的变量格式:- 变量名和值之间不能有空格,比如
VITE_APP_API_KEY=SOME_KEY是正确的,VITE_APP_API_KEY = SOME_KEY会导致读取失败 - 若密钥包含特殊字符,需要用引号包裹,例如
VITE_APP_API_KEY="abc123!@#$"
- 变量名和值之间不能有空格,比如
构建命令未指定生产模式
检查package.json中的build命令,确保是vite build --mode production(或默认使用生产模式)。如果构建时指定了其他模式,Vite会加载对应模式的.env文件,而非.env.production,导致密钥读取错误。Cloud Run缓存干扰
Cloud Run可能缓存了旧的构建结果,导致新的环境变量未生效。尝试清理部署缓存,重新触发一次完整部署。
内容的提问来源于stack exchange,提问作者funtkungus
相关产品推荐
相关产品推荐

