无法使用Accounts.onCreateUser添加用户属性

use*_*256 2 javascript meteor

我尝试向所有新创建的用户添加属性"权限".但它不知何故不起作用.我使用此代码添加属性

 Accounts.onCreateUser(function(options, user) {
  user.permission = 'default';
  if (options.profile)
    user.profile = options.profile;
  return user;
});
Run Code Online (Sandbox Code Playgroud)

但是当我在客户端检索用户对象时,我看不到该属性

u = Meteor.users.findOne(Meteor.userId)
u.permission
>undefined
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

Hub*_* OG 9

你正确地创建它.问题是客户端没有看到这个值.取自文档:

默认情况下,服务器会发布用户名,电子邮件和个人资料

因此,您需要发布/订阅其他字段.

服务器:

Meteor.publish('userData', function() {
  if(!this.userId) return null;
  return Meteor.users.find(this.userId, {fields: {
    permission: 1,
  }});
});
Run Code Online (Sandbox Code Playgroud)

客户:

Deps.autorun(function(){
  Meteor.subscribe('userData');
});
Run Code Online (Sandbox Code Playgroud)