iRo*_*tia 6 node.js firebase google-cloud-functions
我正在尝试将我制作的微型 node-express 应用程序移动到 firebase 函数中。
该文件有dotenv变量。早些时候我认为如果我只是部署并依赖 dotenv,它会起作用,但事实并非如此..
所以,我去了firebase的环境配置文章,了解如何设置.env
哪些国家通过做这样的事情来设置事物
firebase functions:config:set someservice.key="THE API KEY" someservice.id="THE CLIENT ID"
Run Code Online (Sandbox Code Playgroud)
但是我有这么多的环境配置,并且做了一些看起来很麻烦的任务。
所以让我们说这是环境文件
# App port Address
PORT = 8080
# Google Secret
GOOGLE_CALLBACK_URL = http://localhost:8080/auth/google/callback
GOOGLE_CLIENT_ID = 4048108-bssbfjohpu69vl6jhpgs1ne0.apps.googleusercontent.com
GOOGLE_CLIENT_SECRET = lTQHpjzY57oQpO
# Client Address
CLIENT_ADDRESS = http://localhost:3000/
# Meetup Secret
MEETUP_CALLBACK_URL = http://localhost:8080/auth/meetup/callback
MEETUP_CLIENT_ID = ef6i9f7m6k0jp33m9olgt
MEETUP_CLIENT_SECRET = sk3t5lnss2sdl1kgnt
#EventBrite Secret
EVENTBRITE_CALLBACK_URL = http://localhost:8080/auth/eventbrite/callback
EVENTBRITE_CLIENT_ID = UU2FXKGYHJRNHLN
EVENTBRITE_CLIENT_SECRET = NA55QG52FAOF6GDMLKSJBKYOPIGQU4R46HHEU4
Run Code Online (Sandbox Code Playgroud)
我如何最好地设置,以便当我执行firebase firebase serve --only 功能时,托管它不会引发任何错误,例如
OAuth2Strategy 需要一个 clientID 选项
d-_*_*_-b 27
截至2022 年 2 月 16 日, Firebase 现在原生支持.env, .env.prod, .env.dev,.env.local文件!
https://firebase.google.com/docs/functions/config-env
在相应的环境中设置变量,然后运行firebase use dev或firebase use prod部署之前。
您的变量可以通过以下方式访问process.env.VARIABLE_NAME
小智 6
更新 2019-06-04
我非常抱歉。这个解决方案是错误的。
我找到了正确的方法。
您应该将 a.runtimeconfig.json放入函数目录中。您的 dotenv 变量以.runtimeconfig.jsonjson 格式移动。
这是我的解决方案。
const functionConfig = () => {
if (process.env.RUN_LOCALLY) {
const fs = require('fs');
return JSON.parse(fs.readFileSync('.env.json'));
} else {
return functions.config();
}
};
Run Code Online (Sandbox Code Playgroud)
该functionConfig()被你的火力地堡的功能调用。
exports.helloWorld = functions.https.onRequest((request, response) => {
response.send("someservice id is: " + functionConfig().someservice.id);
});
Run Code Online (Sandbox Code Playgroud)
.env.json 就好像:
{
"someservice": {
"key":"THE API KEY",
"id":"THE CLIENT ID"
}
}
Run Code Online (Sandbox Code Playgroud)
最后,使用RUN_LOCALLY变量运行命令。
RUN_LOCALLY=1 firebase serve
Run Code Online (Sandbox Code Playgroud)
当我们部署函数时,不要忘记使用.env.json.
Firebase CLI 目前不允许您在部署时设置流程环境变量。这在未来可能会改变。它今天支持的配置变量(您链接到的)实际上并不是流程环境变量 - 它们存储在实际上不是流程环境的其他地方。
如果您绝对需要能够设置流程环境变量,则必须使用 gcloud 部署函数,这意味着您也无法使用 firebase-functions 模块来定义函数。从Google Cloud Functions文档开始,从云的角度了解部署。
如果您想使用 Firebase 工具,我建议您找到一种不涉及流程环境变量的不同方法来配置函数。
| 归档时间: |
|
| 查看次数: |
6517 次 |
| 最近记录: |