title: firestore equality filter with orderBy
body: <p>I am using Firestore and I have very simple queries with equality filter where I am required to do orderBy (because I have to limit the results). I can't use startAfter withour orderBy, because Firebase throws an error in that case. </p>
  
  <blockquote>
    <p>FirebaseError: Too many arguments provided to Query.startAfter(). The number of arguments must be less than or equal to the number of Query.orderBy() clauses</p>
  </blockquote>
  
  <p>However, I can't use orderBy with an equality filter. Example:</p>
  
  <pre><code>query.where('tags.supporter', '==', true).orderBy('tags.supporter');
  </code></pre>
  
  <p>This throws a Firebase error:</p>
  
  <blockquote>
    <p>FirebaseError: Order by clause cannot contain a field with an equality
    filter tags.supporter</p>
  </blockquote>
  
  <p>Funny enough, this works just fine :-</p>
  
  <pre><code>query.where('tags.supporter', '&lt;=', true).where('tags.supporter', '&gt;=', true)
  </code></pre>
  
  <p>^ this works and gives me tags.supporter == true, but I can't use it with multiple filters.  </p>
  
  <p>Example:</p>
  
  <pre><code>query.where('tags.supporter', '==', true).where('tags.volunteer', '==', true)
  </code></pre>
  
  <p>^ works, but I can't use startAfter without orderBy. But if I try to use orderBy, I get the error :-</p>
  
  <pre><code>query.where('tags.supporter', '==', true).where('tags.volunteer', '==', true).orderBy(...)
  </code></pre>
  
  <p>^ doesn't work!</p>
  
  <p>I can't do the &lt;= >= hack because it requires composite index but I can't set that up because these are user-added tags. </p>
  
  <p>Any ideas? </p>
  
  <p>If this truly is a limitation then it should be mentioned explicitly in the documentation because it would have influenced my decision. Now I'll have to either build a lot of logic in my own app to filter results if this truly is a limitation. </p>