2016-07-23 81 views
0

我有更新用户字段的方法。这工作,但只是在客户端,如果我重新加载应用程序此字段再次从0开始。更新用户集合

方法:

Meteor.methods({ 
    addPublication: function (publications) { 
     check(publications, Number); 

     Meteor.users.update(this.userId, { 
      $set:{ 
       publications: publications 
      } 
     }); 
    } 
}); 

控制器:

Meteor.call('addPublication', Meteor.user().publications + 1); 

允许新的价值观:

Meteor.users.allow({ 
    update: function(userId, user) { 
     console.log('UPDATE USER'); 
     return true; 
    } 
}); 

发布:

  • 服务器

Meteor.publish( '用户',函数(){ 返回Meteor.users.find({},{ 字段:{ 电子邮件:1, 轮廓:1,用户名 :1, 出版物:1, } }); });

  • 客户

Meteor.subscribe( '用户');

我在这里错过了什么吗?

+0

- 没有错误,但“更新用户”从来没有显示在服务器 –

+0

也许一个愚蠢的问题,但在服务器上定义你的方法是什么? – ghybs

+0

不在isServer内部,而是在我的API文件夹中与其余的方法和集合一起。无论如何,我试图把它里面isServer并且具有相同的结果 –

回答

0

你应该公布你的方法还,否则此方法不作任何变动数据库

Meteor.publish('addPublication'); 

如果允许更新

Meteor.users.allow({ 
    update: function(userId, user) { 
     console.log('UPDATE USER'); 
     return true; 
    } 
}); 

有没有从这种方法需要。你可以去客户端:

Meteor.users.update(Meteor.userId(), { 
     $set:{ 
      publications: publications 
     } 
    }); 
+0

使用方法,而不是一个正常的更新的原因从我的控制器是因为另一个用户推荐它。我试过,甚至在客户端,出版物没有更新。 我发表的方法(不知道为什么,这其中有是唯一一个出版),结果是一样的,没有什么变化。 –