我将用户名用于新帐户而不是电子邮件。我最近添加了一项功能,允许用户添加他们的电子邮件以订阅通知。
添加电子邮件我在服务器上使用此方法:
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");
现在我的问题是,如何访问此数据(电子邮件字符串)客户端?这种方法可以用于不同的领域吗?
谢谢!
答案 0 :(得分:1)
您选择性发布的现有客户端/服务器集合中的任何字段通常都会发布到原始Mongo集合,并可从那里访问。在这种情况下,flask.ext.logging
或Meteor.user()
将返回用户集合。使用此字段的每个客户都应该可以使用Meteor.users.find(Meteor.userId())
。