首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Firebase函数版本化

Firebase函数版本化
EN

Stack Overflow用户
提问于 2018-12-05 11:49:16
回答 3查看 1.3K关注 0票数 1

我正在使用Firebase函数,并试图对我的api进行版本化。我正在使用快递作为所有的教程建议。然而,使用此解决方案,我们使用Firebase托管而不是云函数。

托管: https://xxxx.firebaseapp.com

云函数: https://xxxx.cloudfunctions.net

最接近我正在寻找的解决方案是

。

代码语言:javascript
复制
const app1 = express();
app1.use(cors({ origin: true }));
app1.get("*", (request, response) => {
  if(request.url.includes("/v1/")){
    response.send("V1: "+request.path);
  }
  else{
    response.send("V2: "+request.path);
  }

});

const stats = functions.https.onRequest(app1);

module.exports = {
  stats
};

但是,在Firebase函数中只能看到一个函数:



代码语言:javascript
复制
https://xxxx.cloudfunctions.net/stats

此外,您只能处理一种HTTP请求(GET、POST等)。

我正在寻找的是在Firebase函数中拥有:



代码语言:javascript
复制
https://xxxx.cloudfunctions.net/stats/v1/  (including GET, POST, PUT or in another case separate functions with “/:userId” “/save”, etc)
https://xxxx.cloudfunctions.net/stats/v2/  
https://xxxx.cloudfunctions.net/item/v1/

可以用云函数来完成吗?

EN

Stack Overflow用户

发布于 2018-12-05 16:29:39

预计您只会看到一个函数,它的名称是从index.js导出的。所有URL必须通过这个函数锚定。看起来,您希望/stats/*和/items/*都将通过您的函数进行路由,但这不是它的工作方式。

如果您想要不同的路径前缀,您要么需要不同的函数来处理它们,要么您需要为它们设置一个单一的公共前缀。例如,您可以导出一个名为"api“的函数,然后使用它处理所有不同类型的查询:

代码语言:javascript
复制
/api/stats/...
/api/items/...

您还可以考虑对每个不同版本的api使用不同的函数(Express应用程序),让Firebase将不同版本的应用程序路由到不同的应用程序,而不是让一个应用程序在运行时检查版本。

票数 0
EN
查看全部 3 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53631628

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档