title: Meteor collection fetch returns empty array but is subscribed
body: <p>I uninstalled the autosubscribe and restarted the meteor app. Since then, I haven't been able to access my collection data on the client. </p>
  
  <p>Every question related to the empty array return comes up with the same answer: <em>the subscribed data isn't available yet</em>. But no matter how long I wait I never see the data on the client.</p>
  
  <p>Server:</p>
  
  <pre><code>Meteor.startup(function () {
    Meteor.publish("states", function () {
      return states.find();
    });
  });
  </code></pre>
  
  <p>Logging <code>states.find().fetch()</code> on the server spits out my states as expected.</p>
  
  <p>On the client:</p>
  
  <pre><code>Meteor.subscribe("states", function(){
    console.log(states, states.find(), states.find().fetch());
  });
  </code></pre>
  
  <p><code>states</code> and <code>states.find()</code> return objects as expected, <code>.fetch()</code> returns an <code>[]</code>. </p>
  
  <p>Waiting (even several minutes) then running <code>states.find().fetch()</code> in the browser console gives me <code>[]</code> still.</p>
  
  <p>Thoughts? </p>
  
  <p><strong>EDIT</strong></p>
  
  <p>Collection is declared outside of the isServer/isClient blocks (to utilize schemas). </p>
  
  <pre><code>states = new Meteor.Collection("states");
  </code></pre>