【问题标题】:How to read Environmental Variables from .env file in Firebase?如何从 Firebase 中的 .env 文件中读取环境变量?
【发布时间】:2021-03-12 18:55:35
【问题描述】:

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

现在,我面临的问题与 Firebase 相关,更准确地说是 Firebase 的 Cloud Functions。对于通过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 文件夹中。

【问题讨论】:

    标签: javascript node.js firebase google-cloud-functions dotenv


    【解决方案1】:

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

    除非 .env 被手动复制到可部署函数文件夹中。

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

    【讨论】:

    • 感谢 Doug,你们 (Firebases) 对 StackOverflow 上的问题提供了出色的支持。现在看来,我必须保留我幼稚的解决方案吗?
    猜你喜欢
    • 2020-09-02
    • 1970-01-01
    • 2017-03-06
    • 2018-08-12
    • 2021-08-19
    • 2022-07-20
    • 2019-10-17
    • 1970-01-01
    • 2020-05-04
    相关资源
    最近更新 更多