我正在尝试向用户集合添加其他字段。
我设置了正确的update
权限。
//called in my template event handler for a form post
Meteor.users.update(Meteor.userId(), { $set: { company: company._id }});
但是,每当我访问Meteor.user()时,我都看不到公司字段?
我尝试过设置一个pub / sub,但是我仍然没有找到该字段的运气。
有什么想法吗?
答案 0 :(得分:5)
默认情况下,您只能从客户端更新您的个人资料(不是任意字段)。所以你可以这样做:
Meteor.users.update(Meteor.userId(), {$set: {'profile.company': company._id }});
这可能是你想要做的事情。有关允许/拒绝规则以及向客户发布用户字段的详细信息,请仔细阅读文档的users section。
答案 1 :(得分:3)
首先设置权限以允许在个人资料字段之外进行用户更新。
Meteor.users.allow({
update: function(userId, doc){
return doc._id === userId; // can update their own profile
}
});
然后设置公司字段的发布
Meteor.publish("userData", function () {
return Meteor.users.find({_id: this.userId},
{fields: {'company': 1}});
});
并订阅
Meteor.subscribe('userData');