这是我的代码:
const functions = require('firebase-functions');
const express = require('express');
const session = require('express-session');
const FirebaseStore = require('connect-session-firebase')(session);
const firebase = require('firebase-admin');
const cookieParser = require('cookie-parser');
const ref = firebase.initializeApp(
functions.config().firebase
);
const app = express();
app.use(cookieParser());
app.set('trust proxy', 1);
app.use(session({
store: new FirebaseStore({
database: ref.database()
}),
secret: 'abigsigrettotheseeiosnofthmbiith765huig',
resave: true,
saveUninitialized: true,
cookie: { maxAge: 60000 }
}));
app.get('/', function(req, res, next) {
console.log(req.session);
req.session.username='xyz';
res.send('Filling the session with data');
});
app.get('/bar', function(req, res, next) {
console.log(req.session);
var sessionData = req.session.username;
res.send(`This will print the attribute I set earlier: ${sessionData}`);
});
exports.app = functions.https.onRequest(app);
当我运行它时,它会在数据库中创建新会话。
每次刷新页面时,都会有一个新会话。
我当然希望只创建一个会话,
并且在刷新时,此会话只会更新,或从那里获取数据。不要每次都创建一个新的。
检查cookie - 向我显示没有保存/创建cookie。
我已经做了好几个小时......
答案 0 :(得分:0)
当我使用 firebase 函数和托管时,这令人沮丧,但可以通过在会话中简单设置 name:"__session"
来解决。
app.use(session({
store: new FirebaseStore({
database: ref.database()
}),
name:"__session
...