Meteor-添加用户自定义字段的方法不起作用

Meteor - Method adding user custom field do not work

本文关键字:方法 不起作用 字段 自定义 添加 用户 用户自定 Meteor-      更新时间:2023-09-26

我正试图通过一个方法向Meteor.Users添加一个自定义的"isContributor"字段,但不知怎么的,它没有添加该字段。(我甚至在对谁可以进行此更新进行任何安全检查之前就已经在谈论了)。

在客户端,我有以下事件:

Template.Articles.events({
'click #BeContributor': function() {
    userId = Meteor.userId();
    Meteor.call('setContributorState', userId);
}

});

和在server/main.js中如下:

Meteor.methods({
    setContributorState: function(userId) {
        Meteor.users.update(userId, {
          $set: {
                isContributor: true
                }
        });
    }
});

不知怎的,它没有为我的用户添加字段。没有控制台或服务器错误。我想我错过了一些关于场地加法的权利。有什么想法吗?

提前谢谢。

---编辑---

事实上,这个方法是有效的,但我没有公布结果,所以我无法在MeteorToys中检查该字段是否已更新。以下出版物有效:

Meteor.publish(null, function(){
    return Meteor.users.find({_id: this.userId}, {fields: {isContributor: 1}});
});

在发布自定义Meteor.user()字段

p>如果要修改登录用户的贡献者状态,则不需要传递任何参数。这是一个安全漏洞。服务器具有调用请求的信息。
Meteor.methods({
setContributorState: function() {
    Meteor.users.update({_id:this.userId}, {
      $set: {
            isContributor: true
            }
    });
}
});