扩展流星用户模型

时间:2013-10-05 23:52:07

标签: meteor

我正在尝试向用户集合添加其他字段。

我设置了正确的update权限。

//called in my template event handler for a form post
Meteor.users.update(Meteor.userId(), { $set: { company: company._id }});

但是,每当我访问Meteor.user()时,我都看不到公司字段?

我尝试过设置一个pub / sub,但是我仍然没有找到该字段的运气。

有什么想法吗?

2 个答案:

答案 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');