如何从Firebase托管的应用程序中引用Firebase Functions配置变量?

时间:2018-02-24 20:11:04

标签: firebase google-cloud-functions firebase-hosting

我正在转移Heroku托管的ReactJS / NodeJS应用程序,以便在Firebase上托管。由于Firebase仅处理静态页面,因此我需要重新配置如何配置用于开发,登台,生产环境的私有环境特定变量。例如,在我定义这些变量之前:

CLIENT_ID=secret_here       
DOMAIN=secret_here    
REDIRECT_URI=secret_here   

在我部署的Heroku环境中,现在我必须将它们设置为Firebase CLI for Dev,Staging and Production中的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

2 个答案:

答案 0 :(得分:1)

通过您提供的链接定义的变量仅可通过云功能获得。它们不能直接提供给Firebase Hosting提供的静态内容。

如果需要,您可以创建一个HTTP功能,除了从您的环境变量中返回JSON之外什么都不做,并从您的Web内容中调用它。请记住,您将秘密密钥泄露给全世界。

答案 1 :(得分:0)

处理我想要做的事情的最佳实践方法是将需要环境配置的所有应用程序逻辑重构为firebase函数。然后,我可以调用所述函数来引用环境配置并执行消耗它们的代码。这是我需要的答案/解决方案,并且没有先前实现的上下文。谢谢你让我顺利实现这一目标。