我在一个名为的函数中的firebase上有一个基于express.js的云函数应用程序api.要使用自定义域,我正在尝试使用Firebase Hosting重写将特定URL路由到该功能.我在这里关注云功能和Firebase托管的官方文档,https: //firebase.google.com/docs/hosting/functions ,并尝试了许多组合,包括以下内容:
"rewrites": [
{
"source": "/api/**",
"function": "api"
}
]
"rewrites": [
{
"source": "/api/:path1/:dat1/dat",
"function": "api/:path1/:dat1/dat"
}
]
"rewrites": [
{
"source": "/api/path1/dat1/dat",
"function": "api"
}
]
"rewrites": [
{
"source": "/api/*/*/*",
"function": "api"
}
]
Run Code Online (Sandbox Code Playgroud)
可悲的是,它似乎不适用于任何可能的组合.我的快递应用程序具有以下我计划使用的GET路径:
'/api/users/:userId/:userData'
'/api/users/:userId/:userData/json'
'/api/users/:userId/'
Run Code Online (Sandbox Code Playgroud)
和其他类似的.:userId和:userData是我的请求中的参数,因为它与express.js一起使用
所需的功能按预期工作
https://my-firebase-app.cloudfunctions.net
Run Code Online (Sandbox Code Playgroud)
但他们没有合作
https://my-app.firebaseapp.com
Run Code Online (Sandbox Code Playgroud)
请告诉我这些应该如何工作以及我做错了什么.
编辑:这是我的云功能导出的示例
const functions = require('firebase-functions');
const express = require('express');
const app = express();
app.get('/users/:userId/:userData/json', (req, res) => {
// Do App stuff here
}
// A couple …Run Code Online (Sandbox Code Playgroud)