如何从 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
文件吗?在我所有的(Angular
和 Angular 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.
这可能是您最终必须要做的事情。
存储环境变量的最简单的多平台方式是使用我们项目根目录中的 .env
文件。
现在,我面临的问题与 Firebase 有关,更准确地说是 Cloud Functions for Firebase。对于通过 process.env.SOME_VARIABLE
访问的所有环境变量,我得到 undefined
,直到将 .env
文件复制到我的部署文件夹时。在这种情况下,它是默认的 functions
,只有这样它才有效。
问题:有什么方法可以不复制 .env
文件吗?在我所有的(Angular
和 Angular 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.
这可能是您最终必须要做的事情。