firebase功能链中间件

时间:2018-03-05 05:31:11

标签: firebase google-cloud-functions

有没有办法在像“快递”这样的“普通”firebase函数中链接中间件?

普通”功能

addNote = https.onRequest((req, res, next) => {
 addNote(req, res,next);
});

<小时/> 使用快递我链接isAuthenticated并验证中间件

app.post("addNote", isAuthenticated, validate, (req, res, next) => {
  addNote(req, res, next);
 }
);

2 个答案:

答案 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))