几天来我一直在尝试获取 Meteor 聊天应用程序中登录用户的列表。
我尝试了很多不同的事情。我设法在用户配置文件对象上添加登录标志。
服务器端:
Accounts.onCreateUser(function(options, user) {
if(!options.profile){
options.profile = {}
}
options.profile.login = false;
if (options.profile)
user.profile = options.profile;
return user;
});
在浏览器控制台中我得到这个:
Meteor.user().profile
Object {login: false}
所以这似乎有效。
现在我想列出用户是否登录:
客户端
Deps.autorun(function(){
if(Meteor.userId()){
Meteor.user().profile.login=true;
}
});
检查后登录仍然是错误的。
这个模板 html 给了我所有用户名的列表,但没有登录标志
{{#each allUsers}}
<p>{{username}}</p><p>{{profile.login}}</p>
{{/each}
所以我的问题是: profile.login 仍然是 false,我无法显示 profile.login 但会显示用户名。
先感谢您。问候乔里斯
更改用户profile.login
你需要做的财产Meteor.users.update(..)
或调用执行此操作的服务器方法。仅更改用户对象的属性是行不通的。
一般来说,我建议不要将用户状态保存到 mongodb 数据库中,而是将其保存在内存中的集合中。
最简单的可能是只使用以下软件包之一:
- https://github.com/dburles/meteor-presence/
- https://github.com/mizzao/meteor-user-status
或者研究他们的源代码以了解如何传播用户状态。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)