我正在尝试在Cloud Functions for Firebase中创建一个动态网站。
然而,我在这一点上陷入困境。
我想要实现的是我想保存特定的表单详细信息,然后在用户登录时将它们推送到数据库。如果用户未登录,我想在某处保存这些表单详细信息然后重定向用户登录。当他登录时,我将表单详细信息保存在他的userid
。
现在我考虑过使用firebase-cookie-session。因为它是firebase云功能中唯一允许的功能。
然而,我的问题是当用户被重定向到登录时。我无法再访问该请求中的会话。
这就是我接近这个的方式:
我设置了我的快递应用程序:
var session = require('firebase-cookie-session');
app.use(session({
keys: ['cookie_secret'],
name: 'session',
sameSite:true,
proxy: true,
resave: true,
saveUninitialized: true,
maxAge: 360*12*24*36*36
}));
然后在帖子中我将数据保存在session
中: - > console.log(req.session.packageDetails)
完美无缺
homepageRouter.post("/save-form-details", function (req, res, next) {
const packageDetails = JSON.parse(JSON.stringify(req.body));
firebaseController.isUserSignedIn().then(signedinUser => {
if(signedinUser){
firebaseController.getCurrentUser().then(currentUser => {
firebaseController.putPackageToUser(currentUser, packageDetails).then(success => {
return success;
});
}).catch(errorMessage => {
console.log(errorMessage);
});
} else {
req.session.userSignedIn = false;
req.session.packageIncluded = true;
req.session.packageDetails = packageDetails;
console.log('Hello Hello Hello Hello Hello Hello');
console.log(req.session.packageDetails);
res.send({
userSignedIn: false,
redirectTo: '/signup-login'
});
}
console.log('User Status: ' + signedinUser);
console.log('Server Side: ' + JSON.parse(JSON.stringify(req.body)));
});
});
从上面到下面的重定向后,会话变为未定义,不知道为什么。
signupLoginRouter.post("/login", function (req, res, next) {
const accountJSON = JSON.stringify(req.body);
let account = JSON.parse(accountJSON);
console.log('HEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEELP');
console.log(req.session.packageDetails);
}
我认为我要么设置错误或者理解错误。如果有人可以帮忙。 Thay将不胜感激