【发布时间】:2019-07-13 12:20:32
【问题描述】:
所以我正在将我的应用程序从 node express 迁移到 firebase-functions!
在我的 node-express 应用程序中,我有 .env 文件,其中包含所有数据,对于初学者来说,让我们将其视为我的 .env 文件
GOOGLE_CLIENT_ID = 4046108-bssbfjohpj94l0dhpu69vpgs1ne0.apps.googleusercontent.com
GOOGLE_CLIENT_SECRET = lTQHpj3yY57oQpO
然后在我的护照策略中,我有这样的东西
passport.use(new GoogleStrategy({
clientID: process.env.GOOGLE_CLIENT_ID,
clientSecret: process.env.GOOGLE_CLIENT_SECRET,
callbackURL: "/auth/google/callback",
userProfileURL: 'https://www.googleapis.com/oauth2/v3/userinfo',
accessType: 'offline',
passReqToCallback: true
},
现在,
问题:1 - Firebase 函数可能不支持 .env 文件,所以我们可以设置 env 变量而不使用 set flag 手动添加它吗?假设我的环境中有很多变量
问题 - 2:我可以通过这样的方式访问我设置的变量吗
firebase functions:config:set slack.url=https://hooks.slack.com/services/XXX
使用
process.env.slack.url
或者我们必须做(必要的)
functions.config().slack.url
问题:3来自Firebase Docs,写的是
有自动填充的环境变量 函数运行时和本地模拟函数,包括:
process.env.GCLOUD_PROJECT:提供 Firebase 项目 ID
process.env.FIREBASE_CONFIG:提供以下 Firebase 项目 配置信息:
他们的意思是什么?如果问题二的答案是错误的,那么他们如何使用process.env.FIREBASE_CONFIG:
【问题讨论】:
-
这是真正的 google-client-id/secret 吗?如果是这样,请考虑将其删除
-
@jo_va Secret/Client-ID 对其他人无效。我从两者之间随机删除了字母/数字。顺便说一句-你能回答这个问题吗?
-
您混淆了进程环境变量,以及 Firebase 工具提供的特殊环境配置。它们是完全不同的东西。
-
@DougStevenson 你能帮我理解两者之间的区别吗?我无法从 firebase 文档中理解两者之间的区别。
标签: node.js firebase google-cloud-functions