Search code examples
meteormeteor-accounts

User email not showing in template [METEOR]!


I have a user index and would like to display information on each user. User ID shows up fine, but the app isn't showing emails.

Here is my template:

<template name="users">
  <h1>List of all users</h1>
  {{#each users}}
    <div class="list_item">
      <p>ID: {{_id}}</p>
      <p>Email: {{email}}</p>
    </div>
  {{/each}}
</template>

And here are my routes:

Router.route('/users', function () {
  this.render('users');
}, {
  waitOn: function() {
    return [
      Meteor.subscribe('users')
    ]
  },

  data:  {users: Meteor.users.find({})}
});

And finally, my publication:

Meteor.publish('users', function () {
  return Meteor.users.find({}, {fields: {emails: 1, profile: 1}});
});

Any ideas?


Solution

  • The correct way to display the email would be :

    <p>Email: {{emails.[0].address}}</p>
    

    Email addresses are stored as an array in the user object.

    You can check by typing Meteor.user() in the console :

    Object {
      ...
      emails: Array[1]
        0: Object{
          address: "[email protected]",
          verified: false
        }
      ...
    }