有没有办法在像“快递”这样的“普通”firebase函数中链接中间件?
“普通”功能
addNote = https.onRequest((req, res, next) => {
addNote(req, res,next);
});
<小时/> 使用快递我链接isAuthenticated并验证中间件
app.post("addNote", isAuthenticated, validate, (req, res, next) => {
addNote(req, res, next);
}
);
答案 0 :(得分:1)
您可以自动应用快速中间件的唯一方法是为端点(或端点集合)创建Express应用程序并为其应用中间件。然后,该Express应用程序可以使用Cloud Functions for Firebase处理HTTP端点。例如:
const cookieParser = require('cookie-parser')();
const cors = require('cors')({origin: true});
const app = express();
app.use(cors);
app.use(cookieParser);
app.get('/hello', (req, res) => {
res.send(`Hello ${req.user.name}`);
});
exports.app = functions.https.onRequest(app);
现在/ hello函数由Cloud Functions提供,并且应用了cors和cookie-parser中间件。
代码段取自this sample。
答案 1 :(得分:0)
这是一个简单的单处理函数 (reference answer)
const applyMiddleware = handler => (req, res) => {
return middleware1(req, res, () => {
return handler(req, res)
})
}
exports.handler = functions.https.onRequest(applyMiddleware(handler))