使用MeteorJS堆栈,如何从他们发布的帖子中检索用户的电子邮件

问题描述:

MeteorJS新手在这里。我有一个“帖子”的集合,其中包含字段:title,createdAt,body,userId。尽管我只有两个用户,但每个帖子似乎都有不同的userId。我基本上只想显示博客文章,以及他们各自的用户的电子邮件。我目前的执行情况如下,它会显示当前用户,而不是博客文章的电子邮件的所有者的电子邮件:使用MeteorJS堆栈,如何从他们发布的帖子中检索用户的电子邮件

"click .main-feed-post" : function(event) { 
... 
document.getElementById('post-view-email').innerHTML = Meteor.users.findOne({_id: this.userId}).emails[0].address; 
... 
} 

当前只输出已登录用户的电子邮件地址。以前是查看个人博客文章。另外,我有一个主要的饲料,我列出所有的博客文章和它们各自所有者的电子邮件:

{{#each posts}} 
     <li class="main-feed-post"> 
      {{title}} 
      <div class="main-feed-post-data"> 
      <label>BY</label> {{getUserEmail}} <label>AT</label>           {{formattedDate}} 
    </div> 
    </li> 

...

getUserEmail : function() { 
     return Meteor.users.findOne({_id: this.userId}).emails[0].address; 

} 
    {{/each}} 

这是输出什么都没有,除非它是当前用户的电子邮件。理想情况下,我会将用户名字段添加到用户对象,并显示该字段而不是userId或电子邮件。我不确定如何使用accounts-ui和accounts-password软件包来实现这个功能。欢迎任何帮助!提前致谢!

+0

Meteor.users.find()取() 从控制台...这只是返回当前用户。 ..通过删除“不安全”软件包,我是否限制用户访问除自己以外的任何用户信息? – programmingmusic

内部服务器:

Meteor.publish("allUsers", function() { 
    return Meteor.users.find({}); 
}); 
Meteor.publish("allUserData", function() { 
    return Meteor.users.find({}, {fields: {"emails.address": 1}}); 
}); 

内部客户:

Meteor.subscribe("allUsers"); 
Meteor.subscribe("allUserData");