gpt4 book ai didi

node.js - Firebase 函数在本地提供服务时未返回预期的环境配置

转载 作者:太空宇宙 更新时间:2023-11-03 23:00:37 25 4
gpt4 key购买 nike

我有一个托管在 Firebase 托管上的 React 应用,它通过调用 Firebase 函数 ( an impl recommended here ) 来检索环境配置值。下面是该函数的实现:

const functions = require('firebase-functions');

module.exports = functions.https.onRequest((req, res) => {
res.status(200).send(functions.config());
});

从 Firebase CLI 中,当我调用时:

firebase functions:config:get

我明白了:

{
"auth": {
"clientid": MY_CLIENT_ID,
"signoutreturnto": SOME_URL,
"responsetype": SOME_URL,
"redirecturi": SOME_OTHER_URL,
"scope": SOME_OTHER_STRING,
"domain": SOME_DOMAIN
}
}

从 Firebase CLI 调用“Firebase 部署 --only 函数”会生成一个 URL 端点来调用已部署的 Firebase 函数 config,该函数会返回我的环境配置:

https://us-central1-MY_FIREBASE_APP.cloudfunctions.net/config

调用此端点会返回代表我的配置的预期 JSON + 由 Firebase 附加的内容:

{
"auth": {
"clientid": MY_CLIENT_ID,
"signoutreturnto": SOME_URL,
"responsetype": SOME_URL,
"redirecturi": SOME_OTHER_URL,
"scope": SOME_OTHER_STRING,
"domain": SOME_DOMAIN
},
"firebase": {
"databaseURL": MY_DATABASE_URL,
"storageBucket": MY_STORAGE_BUCKET,
"apiKey": MY_API_KEY,
"authDomain": MY_AUTH_DOMAIN,
"projectId": MY_PROJECT_ID,
"credential": {
"credential_": {}
}
}
}

我有edited my firebase.json with re-write rules to serve my functions as API endpoints

{
"hosting": {
"public": "build",
"ignore": [
"firebase.json",
"**/.*",
"**/node_modules/**"
],
"rewrites": [
{
"source": "**",
"destination": "/index.html"
},
{
"source": "/config", "function": "config"
}
]
}
}

但是 - 当我使用 Firebase CLI 中的以下命令在本地提供这些功能时:

Firebase serve --only functions,hosting

我为我的配置函数调用生成的本地端点:

http://localhost:5001/MY_FIREBASE_APP/us-central1/config

返回的 json 对象缺少预期的“auth”对象(如上所示)。相反,返回的 JSON 是:

{
"firebase": {
"databaseURL": MY_DATABASE_URL,
"storageBucket": MY_STORAGE_BUCKET,
"apiKey": MY_API_KEY,
"authDomain": MY_AUTH_DOMAIN,
"projectId": MY_PROJECT_ID,
"credential": {
"credential_": {
...
}
}
}
}
}

这会在本地执行时破坏我的应用程序,因为无法检索预期的配置值。

为什么我配置的“auth”对象不像我调用其他 url 端点时那样包含在结果中?

最佳答案

如果您想在本地模拟函数中使用配置参数,follow the instructions here 。具体来说:

If you're using custom functions configuration variables, first run the command to get your custom config (run this within the functions directory), and then run the shell:

cd functions
firebase functions:config:get > .runtimeconfig.json

functions 目录中的 .runtimeconfig.json 文件需要包含要在仿真期间使用的配置。

关于node.js - Firebase 函数在本地提供服务时未返回预期的环境配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49137279/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com