title: What is the differences between GoogleSignInApi.signOut and FirebaseAuth.signOut and more
body: <p>What is the the more detail workflow difference between </p>
  
  <pre><code>GoogleSignInApi.signOut 
  
  FirebaseAuth.signOut() 
  
  GoogleSignInApi.revokeAccess. 
  </code></pre>
  
  <p>Going trough many tutorials and codelabs like <a href="https://cloud.google.com/solutions/mobile/mobile-firebase-app-engine-flexible#creating-project" rel="nofollow">Build an Android App</a> and  <a href="https://firebase.google.com/docs/auth/android/google-signin" rel="nofollow">Authenticate Using Google</a> and <a href="https://codelabs.developers.google.com/codelabs/firebase-android/#0" rel="nofollow">FireBase Android Codelab</a></p>
  
  <p>Everything is really transparent except the behind then scene working for the above <code>signOut</code> and <code>revokeAccess</code>. </p>
  
  <p>Why is <code>FirebaseAuth.getCurrentUser()</code> still holding on to the user after <code>GoogleSignInApi.signOut</code>has runned. Does this mean I must keep track of the state in some e.g. <code>SharedPreferences</code>. When I call the <code>FirebaseAuth.signOut()</code>the user is indeed removed from <code>FirebaseAuth.getCurrentUser()</code>.</p>
  
  <p>As I understand it the <code>GoogleSignInApi.revokeAccess</code> and the <code>GoogleSignInApi.signOut</code> both makes the user pick an account again.</p>
  
  <p>But what more specifically is the differences in the above three?</p>