1

我正在尝试在 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将不胜感激

4

0 回答 0