Firebase云function路由
如何在HTTP中处理类似/ user /:id和/ user /:id / report的path触发Firebase云function,并访问参数ID?
我不喜欢下一个解决scheme,因为我所有的函数都是前缀/ api的一部分 :
const app = require('express')(); exports.api= functions.https.onRequest(app); app.get('/user/:uid/report', (req, res) => {}):
但是我需要这样的东西:
exports['/user/:uid/report'] = functions.https.onRequest((req, res) => { // ... });
您可以在Firebase的云端function之上使用Firebase托pipe服务来重新编写url以适应您所需的path。 这意味着你将不得不再次firebase init
并添加托pipe,如果它还没有。
在你的项目firebase.json
你必须添加一个函数重写来发送所有的请求到主机/**
到函数api
:
{ "hosting": { "rewrites": [ { "source": "/**", "function": "api" } ] } }
部署时,您将在输出中获得托pipeURL。 使用这个而不是你的函数的URL。
而现在,在主持function之前,您必须能够设置caching 。
你可以使用你的主机重写来映射URL到这样的function
"rewrites": [ { "source": "/user/*/report", "function": "myFunction" } ]
但是你必须处理自己的URL来提取每个参数
- Express 3上的EJS布局
- 如何在node.js中使用express.static显示index.html之前显示login页面
- ExpressJS呼叫路由中的路由
- req.isAuthenticated()使用NodeJS,Express和PassportJS返回false
- TypeError:对象函数app(req,res){app.handle(req,res); }没有方法“注册”
- io.connect(); 没有初始化,node.js
- MissingSchemaError为Mongoose的填充方法
- Node.js Express:需要/使用另一个应用程序
- 在Node.js上使用passport-ldapauth进行LDAPauthentication