Meteor - 从客户端访问用户字段

时间:2015-06-03 19:44:33

标签: meteor

我将用户名用于新帐户而不是电子邮件。我最近添加了一项功能,允许用户添加他们的电子邮件以订阅通知。

添加电子邮件我在服务器上使用此方法:

addEmail: function (email) {
  if (! Meteor.userId()) {
    throw new Meteor.Error("not-authorized");
  }
  Roles.addUsersToRoles(Meteor.userId(), 'subscriber');
  Meteor.users.update(Meteor.userId(), { $set: { email: email } });
}

我希望客户端可以访问此电子邮件字段。 所以我尝试将用户发布到这样的客户端。

Meteor.publish("userData", function() {
  if (this.userId) {
    return Meteor.users.find(
      {_id: this.userId},
      {fields: {email: 1}
    });
  }
});

理想情况下,这会将当前用户的电子邮件发布给客户。

以下是我的客户端订阅:Meteor.subscribe("userData");

现在我的问题是,如何访问此数据(电子邮件字符串)客户端?这种方法可以用于不同的领域吗?

谢谢!

1 个答案:

答案 0 :(得分:1)

您选择性发布的现有客户端/服务器集合中的任何字段通常都会发布到原始Mongo集合,并可从那里访问。在这种情况下,flask.ext.loggingMeteor.user()将返回用户集合。使用此字段的每个客户都应该可以使用Meteor.users.find(Meteor.userId())