admin.auth(...).createSessionCookie 不是函数

admin.auth(...).createSessionCookie is not a function

我正在尝试完全按照文档 documentation 的说明管理 firebase 身份验证会话,但是当我使用 post 方法“/loginSession”节点 Js [=22] 通过 Ajax 请求时=] 我这个 :

 `error: TypeError: admin.auth(...).createSessionCookie is not a function
    at app.post (C:\Projectos\Eventos\functions\index.js:48:16)
    at Layer.handle [as handle_request] (C:\Projectos\Eventos\functions\node_modules\express\lib\router\layer.js:95:5)
    at next (C:\Projectos\Eventos\functions\node_modules\express\lib\router\route.js:137:13)
    at Route.dispatch (C:\Projectos\Eventos\functions\node_modules\express\lib\router\route.js:112:3)
    at Layer.handle [as handle_request] (C:\Projectos\Eventos\functions\node_modules\express\lib\router\layer.js:95:5)
    at C:\Projectos\Eventos\functions\node_modules\express\lib\router\index.js:281:22
    at Function.process_params (C:\Projectos\Eventos\functions\node_modules\express\lib\router\index.js:335:12)
    at next (C:\Projectos\Eventos\functions\node_modules\express\lib\router\index.js:275:10)
    at urlencodedParser (C:\Projectos\Eventos\functions\node_modules\body-parser\lib\types\urlencoded.js:82:7)
    at Layer.handle [as handle_request] (C:\Projectos\Eventos\functions\node_modules\express\lib\router\layer.js:95:5)`

这是我管理请求的方式

app.post('/loginSession',(req,res)=>{
  const idToken = req.body.idToken.toString();
  const expiresIn = 60*60*24*5*1000;
  admin.auth().createSessionCookie(idToken,{expiresIn}).then((sessionCookie)=>{
    const options = {maxAge:expiresIn,httpOnly:true,secure:true};
    res.cookie('session',sessionCookie,options);
    res.end(JSON.stringify({status:'success'}));
  },error=>{
    res.status(401).send('error');
  });
});

我正在使用 express、body-parser 和 firebase 火力地堡版本 3.18.4 节点版本 8.9.3

我刚刚意识到我需要 5.12.0 或更高版本

Firebase Admin SDK 5.12 版中引入了 createSessionCookie() 方法(以及其他会话管理方法)。参见changelog for the Firebase Admin SDK for Node。升级到最新版本以消除错误。