繁体   English   中英

从客户端更新Meteor.users

[英]Updating Meteor.users from client

我有一个试图通过以下帮助程序使用有关用户的额外信息来更新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.users的Meteor文档:

默认情况下,当前用户的usernameemailsprofile将发布到客户端。

这意味着您可以更新任何这些用户属性,但是如果要添加其他用户属性,则最好将它们添加到这些现有字段之一中。 我建议在个人资料属性中添加“ firstName”之类的内容。 在这种情况下,您的代码将如下所示:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM