我正在尝试在我的应用程序中使用会话来跟踪用户登录等信息。
但是...
当我尝试使用最简单的方法时,我一直收到以下错误:
警告:connect.session() MemoryStore不适用于生产环境,因为它会泄漏内存,并且无法扩展到单个进程之外。
因此,在经过长时间的搜索后,我添加了firebase-session功能,但现在,即使我没有出现任何错误,也没有保存任何会话数据。
这是我的代码:
这是我目前所做的:
但是...
当我尝试使用最简单的方法时,我一直收到以下错误:
警告:connect.session() MemoryStore不适用于生产环境,因为它会泄漏内存,并且无法扩展到单个进程之外。
因此,在经过长时间的搜索后,我添加了firebase-session功能,但现在,即使我没有出现任何错误,也没有保存任何会话数据。
这是我的代码:
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 ref = firebase.initializeApp(
functions.config().firebase
);
const app = express();
app.use(session({
store: new FirebaseStore({
database: ref.database()
}),
secret: 'asdfasgbrwewet53hnhwetynsy',
resave: true,
saveUninitialized: true
}));
app.get('/', function(req, res, next) {
console.log(req.session);
req.session.username='rakafa';
res.send('Returning with some text');
});
app.get('/bar', function(req, res, next) {
console.log(req.session);
var someAttribute = req.session.username;
res.send(`This will print the attribute I set earlier: ${someAttribute}`);
});
exports.app = functions.https.onRequest(app);
这是我目前所做的:
- 我使用的最初用于开始使用会话的原始示例:session-express example
- 我从npm中获取了firebase部分:npm firebase-session
- 尝试使用radis-store作为解决方案,但没有成功:using radis-store solution
- 使用session-store后,给我的警告与什么都不使用一样:npm session-store
- 这个问题给了我使用firebase-session的想法:database sessions explanations
- 我看到了一个使用cookie的例子,但我没有理解,并且没有找到另一个例子:cookie session
只是另一个单词,我刚刚开始学习Node.js,请尝试使用简单的示例,以便我能够理解;)
请原谅我的错误
请,帮帮我....
=== 编辑 ===
根据orxelm的答案,我将我的ref
更改为以下内容:
const ref = firebase.initializeApp({
//admin.credential.cert(serviceAccount)
credential: firebase.credential.applicationDefault(),
databaseURL: "https://*****.firebaseio.com/"
});
但是,当我运行应用程序时,刷新页面后会发现session中没有任何内容。
服务器上的sessions ^^ 我可以看到应用程序在服务器上创建了许多会话。 但是它们中没有一个会话包含我在应用程序中添加的信息, 而且由于我只使用一个浏览器,应该只有一个会话,难道我错了吗?