Javascript 从客户端更新Meteor.users

Javascript 从客户端更新Meteor.users,javascript,meteor,Javascript,Meteor,我有一个表单试图更新meteor.users,其中包含关于使用以下帮助程序的用户的额外信息 Template.Profile.events({ 'submit form': function(e) { e.preventDefault(); var post = { firstName: $(e.target).find('[name=firstname]').val() }; Meteor.users.update( { _id: M

我有一个表单试图更新meteor.users,其中包含关于使用以下帮助程序的用户的额外信息

Template.Profile.events({
  'submit form': function(e) {
    e.preventDefault();

    var post = {

        firstName: $(e.target).find('[name=firstname]').val()

    };

    Meteor.users.update( { _id: Meteor.userId() }, { $set: { 'firstName': post.firstName }} );

  }
});
但是,我获取更新失败:访问被拒绝

另一个问题是,我想知道我是否应该直接对Meteor.users集合进行额外的更新,还是应该有一个单独的集合来存储这些数据


谢谢

由于您正试图直接在基本用户对象上设置属性,因此收到“拒绝访问”错误。根据Meteor的文件:

默认情况下,当前用户的
用户名
电子邮件
,以及
配置文件
是 发布到客户端

这意味着您可以更新这些用户属性中的任何一个,但是如果您想添加其他属性,最好将它们添加到这些已经存在的字段中。我建议在profile属性中添加类似“firstName”的内容。在本例中,您的代码如下所示:

Meteor.users.update({_id: Meteor.userId()}, {$set: {'profile.firstName': post.firstName}});

由于您正试图直接在基本用户对象上设置属性,因此收到“拒绝访问”错误。根据Meteor的文件:

默认情况下,当前用户的
用户名
电子邮件
,以及
配置文件
是 发布到客户端

这意味着您可以更新这些用户属性中的任何一个,但是如果您想添加其他属性,最好将它们添加到这些已经存在的字段中。我建议在profile属性中添加类似“firstName”的内容。在本例中,您的代码如下所示:

Meteor.users.update({_id: Meteor.userId()}, {$set: {'profile.firstName': post.firstName}});

由于您正试图直接在基本用户对象上设置属性,因此收到“拒绝访问”错误。根据Meteor的文件:

默认情况下,当前用户的
用户名
电子邮件
,以及
配置文件
是 发布到客户端

这意味着您可以更新这些用户属性中的任何一个,但是如果您想添加其他属性,最好将它们添加到这些已经存在的字段中。我建议在profile属性中添加类似“firstName”的内容。在本例中,您的代码如下所示:

Meteor.users.update({_id: Meteor.userId()}, {$set: {'profile.firstName': post.firstName}});

由于您正试图直接在基本用户对象上设置属性,因此收到“拒绝访问”错误。根据Meteor的文件:

默认情况下,当前用户的
用户名
电子邮件
,以及
配置文件
是 发布到客户端

这意味着您可以更新这些用户属性中的任何一个,但是如果您想添加其他属性,最好将它们添加到这些已经存在的字段中。我建议在profile属性中添加类似“firstName”的内容。在本例中,您的代码如下所示:

Meteor.users.update({_id: Meteor.userId()}, {$set: {'profile.firstName': post.firstName}});