【发布时间】:2018-08-04 15:32:10
【问题描述】:
我正在将 Heroku 托管的 ReactJS/NodeJS 应用程序转换为托管在 Firebase 上。因为 Firebase 只处理静态页面,所以我需要重新配置用于开发、暂存、生产环境的私有环境特定变量的配置方式。例如在我定义这些类型的变量之前:
CLIENT_ID=secret_here
DOMAIN=secret_here
REDIRECT_URI=secret_here
在我部署到的 Heroku 环境中,现在我必须从 Firebase CLI 将它们设置为用于开发、暂存和生产的 firebase 函数环境。
Firebase 在 adding environmental configurations to Firebase Functions 上有文档,因此我可以添加键/值对,以便在运行时从 firebase 函数中访问:
firebase functions:config:set mySecret.key="CLIENT_ID" mySecret.id="secret_here"
但是我不清楚如何从 Firebase 托管的静态应用程序(而不是函数)访问添加的配置变量。
是否像简单地从我的应用程序中引用 firebase 函数库并从我的应用程序中检索定义的密钥一样简单(像这样)?
const functions = require('firebase-functions');
...
functions.config().auth0.CLIENT_ID
【问题讨论】:
-
我不确定您要在这里完成什么。允许从客户端访问这些秘密变量是一个坏主意,这就是为什么没有 SDK 试图使这变得容易的原因。而且您已经找到了如何从 Cloud Functions 中的服务器端代码访问它们。
-
在 Heroku 上,您可能也有一些在服务器上运行的代码,以及在客户端/浏览器中运行的一些代码。前一种类型的代码应在服务器中继续运行,例如在 Cloud Functions 中。
标签: firebase google-cloud-functions firebase-hosting