title: MeteorJS: Get user profile on client side
body: <p>So, this problem has been well documented, yet here I am, stuck again...</p>
  
  <p>On server side, I have publish: </p>
  
  <pre><code>Meteor.publish('userData', function(){ if (!this.userId) { return null; } 
  return Meteor.users.find({}, {fields: {'profile': 1}}); });
  </code></pre>
  
  <p>On client side router subscriptions, I have:</p>
  
  <pre><code>this.register('userData', Meteor.subscribe('userData'));
  </code></pre>
  
  <p>And then in my client code, I have:</p>
  
  <pre><code>if (Meteor.userId()) {
    var profile = Meteor.users.find(Meteor.userId()).profile;
    console.log(profile); // I keep getting undefined...
  </code></pre>
  
  <p>I am not using the autopublish or insecure package. </p>
  
  <p>My data in the mongodb collection looks like:</p>
  
  <pre><code>{"_id" : "...", profile: { "password" : { "network" : "...", "picture" : "none" } }
  </code></pre>
  
  <p>My error says: </p>
  
  <pre><code>Uncaught TypeError: Cannot read property 'password' of undefined
  </code></pre>
  
  <p>Thoughts?</p>