当尝试部署到Firebase(本例为Firebase函数(时,我收到以下错误:
Error: Failed to load environment variables from .env.:
- Error Key FIREBASE_TOKEN starts with a reserved prefix (X_GOOGLE_ FIREBASE_ EXT_)
error Command failed with exit code 2.
实际上,我在functions目录中有一个.env文件。
我需要保留变量名,因为它用于应用程序的不同部分。
我该如何解决此问题?
在这种情况下,我需要在.env文件中的环境变量中包含FIREBASE_TOKEN,因为我的开发环境在Docker容器中,我不想"firebase登录";每次容器重建时。
因此,为了部署解决方案,我使用了dotenv和cross-var包,并有这样的脚本:
"deploy": "dotenv -e ../.env cross-var firebase deploy --only functions --token %FIREBASE_TOKEN%",
我所做的是将.env文件移动到更高级别(项目的根目录(,并在dotenv命令中使用-e标志引用它来指定文件的位置。
在我的案例中,我将.env
文件移到了项目的主根目录,而不是functions
文件夹,之后它就可以正常工作了。在这里也可以看到答案。