我正在转换一个Heroku托管的ReactJS / NodeJS应用程序,以便在Firebase上托管 . 由于Firebase仅处理静态页面,因此我需要重新配置如何配置用于开发,登台, 生产环境 环境的私有环境特定变量 . 例如,在我定义这些变量之前:
CLIENT_ID=secret_here
DOMAIN=secret_here
REDIRECT_URI=secret_here
在我部署的Heroku环境中,现在我必须将它们设置为Firebase CLI for Dev,Staging和Production中的firebase功能环境 .
Firebase上有adding environmental configurations to Firebase Functions的文档,这样我就可以在firebase function 中添加要在运行时访问的键/值对:
firebase functions:config:set mySecret.key="CLIENT_ID" mySecret.id="secret_here"
但 I am unclear how added configuration variables can be accessed from Firebase-hosted static applications (rather than functions).
是否只是简单地从我的应用程序引用firebase函数库并从我的应用程序中检索定义的键(如此)?
const functions = require('firebase-functions');
...
functions.config().auth0.CLIENT_ID
2 回答
您通过您提供的链接定义的变量仅可通过 Cloud 功能获得 . 它们不能直接用于Firebase Hosting提供的静态内容 .
如果需要,您可以创建一个HTTP函数,该函数除了从您的env变量中返回JSON之外什么都不做,并从您的Web内容中调用它 . 请记住,您正在向世界公开您的密钥 .
处理我想要做的事情的最佳实践方法是将需要环境配置的所有应用程序逻辑重构为firebase函数 . 然后,我可以调用所述函数来引用环境配置并执行消耗它们的代码 . 这是我需要的答案/解决方案,并且没有先前实现的上下文 . 谢谢你让我朝着这个目标前进 .