当我在console.log中当前从服务器端登录的用户时,我看到了所有字段。当我从客户端执行相同操作时,我只获取_id和电子邮件字段。我很确定我订阅正确。
user2
答案 0 :(得分:0)
这是因为
来自文档here 的默认情况下,当前用户的用户名,电子邮件和个人资料均为 发布给客户。
像这样更新你的onCreateUser
Accounts.onCreateUser(function(options, user){
if (options.profile) user.profile = options.profile;
if (user.profile == null) user.profile = {};
user['profile'].subreddits = [];
console.log(user);
return user;
});
答案 1 :(得分:0)
如果删除了自动发布,Meteor.users将只发布当前用户个人资料。
将以下发布添加到您的服务器代码:
Meteor.publish(null, function () {
if (!this.userId) return this.ready();
return Meteor.users.find({});
});
如果删除了自动发布,则客户端将自动发布并自动订阅空发布。
另外,请记住仅包含那些不敏感的字段。对于,例如。您可能希望省略密码字段或服务字段。
这样的事情:
Meteor.users.find({}, {
fields: {
profile : 1,
emails : 1
}
});