如何从 Firebase 中的 .env 文件读取环境变量?

How to read Environmental Variables from .env file in Firebase?

存储环境变量的最简单的多平台方式是使用我们项目根目录中的 .env 文件。

现在,我面临的问题与 Firebase 有关,更准确地说是 Cloud Functions for Firebase。对于通过 process.env.SOME_VARIABLE 访问的所有环境变量,我得到 undefined,直到将 .env 文件复制到我的部署文件夹时。在这种情况下,它是默认的 functions,只有这样它才有效。

问题:有什么方法可以不复制 .env 文件吗?在我所有的(AngularAngular Universal)应用程序中,我可以访问 process.env.SOME_VARIABLE,不包括后端逻辑,它 100% 依赖函数。

我试过调试它

console.log(require('dotenv').config({ debug: true }));

Firebase 的日志中返回了类似 workspace/.env 的内容,但无法对其执行任何操作。

我的一些尝试:

require('dotenv').config({ path: '/workspace/.env' });
require('dotenv').config({ path: join(process.cwd(), '.env') });
require('dotenv').config({ path: join(process.cwd(), './../.env') });
require('dotenv').config({ path: __dirname + './../.env' });
require('dotenv').config({ path: join(process.cwd() + './../.env') });

总是给我 undefined,除非 .env 被手动复制到可部署的 functions 文件夹。

Firebase CLI 在部署时部署函数文件夹中的所有内容,node_modules 除外。如果它不在那里用于部署,那么如果不以某种方式脱离主机到远程网络位置,您将根本无法读取它。当前无法使 CLI 合并来自其他位置的文件。您也许可以尝试符号链接。

unless the .env was manually copied to the deployable functions folder.

这可能是您最终必须要做的事情。