title: How to get firestore persistent with flutter fire to Cache documents
body: <p>I do a query like this:</p>
  <pre><code>  var snapshots = await this.db
        .collection('${AppInit.chatsref}')
        .where('members', arrayContains: uid)
        .orderBy('updated_at', descending: true)
        .get();
    // Check cache.
      print(snapshots.metadata.isFromCache ? &quot;Cached&quot; : &quot;Not Cached&quot;);
  </code></pre>
  <p>I will always get the 'Not cached'
  So my cache only works if I specifically set source to cache</p>
  <pre><code>  var snapshots = await this.db
                .collection('${AppInit.chatsref}')
                .where('members', arrayContains: uid)
                .orderBy('updated_at', descending: true)
                .get(GetOptions(source: Source.cache)); 
      // Check cache.
      print(snapshots.metadata.isFromCache ? &quot;Cached&quot; : &quot;Not Cached&quot;);
  </code></pre>
  <p>Then I will get content from the cache.
  I thought firebase firestore handles this. Do I need to always set the source?
  This happens for both the firestore future(get) and stream(snapshot).</p>
  <p>I want firestore to use cache as much as possible. It's a chatting app. So I hate that the app stays at the loading state even for a second:
  <a href="https://i.stack.imgur.com/RvEcS.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/RvEcS.png" alt="enter image description here" /></a></p>