2016-04-14 9 views
0

MeteorJS newbie here。私はフィールドがある "投稿"のコレクションを持っています:title、createdAt、body、userId。私は2人のユーザーしかいませんが、投稿ごとに異なるユーザーIDがあるようです。私は基本的には、ブログ投稿をそれぞれのユーザーの電子メールとともに表示したいだけです。次のように私の現在の実装であり、それは現在のユーザではなく、ブログ記事の電子メールの所有者の電子メール表示されます。MeteorJSスタックを使用して、投稿した投稿からuserIdを使ってユーザの電子メールを取得するにはどうすればいいですか?

"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

答えて

0

:クライアントインサイド

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");