title: What is the use of hashcode in Document Snapshot?
body: <p>I noticed this code in the <code>DocumentSnapshot</code> class of firebase:</p>
  <pre class="lang-java prettyprint-override"><code>@Override
  public int hashCode() {
      int hash = firestore.hashCode();
      hash = hash * 31 + key.hashCode();
      hash = hash * 31 + (doc != null ? doc.getKey().hashCode() : 0);
      hash = hash * 31 + (doc != null ? doc.getData().hashCode() : 0);
      hash = hash * 31 + metadata.hashCode();
      return hash;
  }
  </code></pre>
  <p>Now, even if I fetch the same document, I get a different hashcode. If they are different, what's the use of this? I get it for a class like <code>String</code>. It gives the same hashcode when giving it the same string. Then why different for <code>DocumentSnapshot</code>?</p>