我使用functions.config()
命令以旧方式使用Cloud Functions包中的环境变量,但由于我更新到v1.0.2,我甚至无法通过JSON.parse(process.env.FIREBASE_CONFIG)
使用env变量,就像文档一样告诉我做,我找不到如何设置或获取其他信息。此命令仅向我提供有关项目的信息,但不提供我使用旧方法设置的信息。如何使用新方法获取/设置此信息?
提前谢谢。
答案 0 :(得分:3)
documentation for the environment changes in 1.0可能有点令人困惑。 functions.config()不会消失 - 您仍然使用它来访问使用带有firebase functions:config:set
的Firebase CLI设置的环境变量。关于配置而改变的事情如下:
functions.config().firebase
不再用于项目配置。该信息现在作为process.env.FIREBASE_CONFIG
存储在流程环境中。admin.initializeApp()
。配置将自动从Cloud Functions运行时中获取。答案 1 :(得分:0)
请在此处查看此答案https://stackoverflow.com/a/45064266/4871483。我的理解是,新的云功能将来自本地.runtimeconfig.json
。我建议暂时降级并将旧配置写入该文件。然后,您可以将这些文档https://firebase.google.com/docs/functions/local-emulator用于再次升级后如何访问它的代码。
答案 2 :(得分:0)
我所做的基本上是
env.prod.ts
env.dev.ts
env.ts
在我的环境中
export const env = require(`./env.${functions.config().env.name}').default;
,在package.json中,我设置了
"dev-prod": firebase use prod && functions:config:set env.name=prod
等 这样我既可以拥有fb密钥,也可以拥有自己的prod密钥,并且整个应用程序与配置无关
当我需要env var时,我只使用
import environment from '../env.ts'
与json等兼容(dotenv不支持)