title: Firebase Authentication Not working in signed APK
body: <p>I'm using Firebase Google Sign in. It works perfectly via USB debugging. But when I generate signed APK, it stops working. Its not able to sign in. Using it on Android 5.1 &amp; Android 6.0.1. Also, if the Google play services is not updated, it gives user prompt to update it because of which user may leave the app. How can I turn off the prompt and solve the error?</p>
  
  <pre><code>public class MainActivity extends AppCompatActivity implements  GoogleApiClient.OnConnectionFailedListener,
          View.OnClickListener {
  private Button skip;
      private static final String TAG = "GoogleActivity";
      private static final int RC_SIGN_IN = 9001;
      private ProgressBar pb;
      // [START declare_auth]
      private FirebaseAuth mAuth;
      // [END declare_auth]
  
      // [START declare_auth_listener]
      private FirebaseAuth.AuthStateListener mAuthListener;
      // [END declare_auth_listener]
  
      private GoogleApiClient mGoogleApiClient;
      private TextView mStatusTextView;
      private TextView mDetailTextView;
  
      @Override
      protected void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
          setContentView(R.layout.activity_main);
          pb=(ProgressBar)findViewById(R.id.signpro);
          pb.setVisibility(View.GONE);
          skip=(Button)findViewById(R.id.btnskip);
          skip.setOnClickListener(new View.OnClickListener() {
              @Override
              public void onClick(View v) {
                  setContentView(R.layout.activity_home);
              }
          });
          // Views
  
  
          // Button listeners
          findViewById(R.id.sign_in_button).setOnClickListener(this);
  
          // [START config_signin]
          // Configure Google Sign In
          GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
                  .requestIdToken(getString(R.string.default_web_client_id))
                  .requestEmail()
                  .build();
          // [END config_signin]
  
          mGoogleApiClient = new GoogleApiClient.Builder(this)
                  .enableAutoManage(this /* FragmentActivity */, this /* OnConnectionFailedListener */)
                  .addApi(Auth.GOOGLE_SIGN_IN_API, gso)
                  .build();
  
          // [START initialize_auth]
          mAuth = FirebaseAuth.getInstance();
          // [END initialize_auth]
  
          // [START auth_state_listener]
          mAuthListener = new FirebaseAuth.AuthStateListener() {
              @Override
              public void onAuthStateChanged(@NonNull FirebaseAuth firebaseAuth) {
  
                  FirebaseUser user = firebaseAuth.getCurrentUser();
                  if (user != null) {
                      // User is signed in
                      Log.d(TAG, "onAuthStateChanged:signed_in:" + user.getUid());
                      setContentView(R.layout.activity_home);
  
                  } else {
                      // User is signed out
                      Log.d(TAG, "onAuthStateChanged:signed_out");
                  }
                  // [START_EXCLUDE]
  
                  // [END_EXCLUDE]
              }
          };
          // [END auth_state_listener]
      }
  
      // [START on_start_add_listener]
      @Override
      public void onStart() {
          super.onStart();
          mAuth.addAuthStateListener(mAuthListener);
  
      }
      // [END on_start_add_listener]
  
      // [START on_stop_remove_listener]
      @Override
      public void onStop() {
          super.onStop();
          if (mAuthListener != null) {
              mAuth.removeAuthStateListener(mAuthListener);
          }
      }
      // [END on_stop_remove_listener]
  
      // [START onactivityresult]
      @Override
      public void onActivityResult(int requestCode, int resultCode, Intent data) {
          super.onActivityResult(requestCode, resultCode, data);
  
          // Result returned from launching the Intent from GoogleSignInApi.getSignInIntent(...);
          if (requestCode == RC_SIGN_IN) {
              GoogleSignInResult result = Auth.GoogleSignInApi.getSignInResultFromIntent(data);
              if (result.isSuccess()) {
                  Toast.makeText(this, "Signing you in. Please Wait...", Toast.LENGTH_LONG).show();
                  // Google Sign In was successful, authenticate with Firebase
                  GoogleSignInAccount account = result.getSignInAccount();
                  firebaseAuthWithGoogle(account);
                  Toast.makeText(this, "Sign In Successful!", Toast.LENGTH_SHORT).show();
              } else {
                  // Google Sign In failed, update UI appropriately
                  // [START_EXCLUDE]
  
                  Toast.makeText(this, "Google Sign In failed. Please Skip.", Toast.LENGTH_SHORT).show();
                  pb.setVisibility(View.GONE);
                  // [END_EXCLUDE]
              }
          }
      }
      // [END onactivityresult]
  
      // [START auth_with_google]
      private void firebaseAuthWithGoogle(GoogleSignInAccount acct) {
          Log.d(TAG, "firebaseAuthWithGoogle:" + acct.getId());
          // [START_EXCLUDE silent]
  
          // [END_EXCLUDE]
  
          AuthCredential credential = GoogleAuthProvider.getCredential(acct.getIdToken(), null);
          mAuth.signInWithCredential(credential)
                  .addOnCompleteListener(this, new OnCompleteListener&lt;AuthResult&gt;() {
                      @Override
                      public void onComplete(@NonNull Task&lt;AuthResult&gt; task) {
                          Log.d(TAG, "signInWithCredential:onComplete:" + task.isSuccessful());
  
                          // If sign in fails, display a message to the user. If sign in succeeds
                          // the auth state listener will be notified and logic to handle the
                          // signed in user can be handled in the listener.
                          if (!task.isSuccessful()) {
                              Log.w(TAG, "signInWithCredential", task.getException());
                              Toast.makeText(MainActivity.this, "Authentication failed.",
                                      Toast.LENGTH_SHORT).show();
                          }
                          // [START_EXCLUDE]
  
                          // [END_EXCLUDE]
                      }
                  });
      }
      // [END auth_with_google]
  
      // [START signin]
      private void signIn() {
          pb.setVisibility(View.VISIBLE);
          Intent signInIntent = Auth.GoogleSignInApi.getSignInIntent(mGoogleApiClient);
          startActivityForResult(signInIntent, RC_SIGN_IN);
      }
      // [END signin]
  
  
  
      @Override
      public void onConnectionFailed(@NonNull ConnectionResult connectionResult) {
          // An unresolvable error has occurred and Google APIs (including Sign-In) will not
          // be available.
          Log.d(TAG, "onConnectionFailed:" + connectionResult);
          Toast.makeText(this, "Google Play Services error.", Toast.LENGTH_SHORT).show();
      }
  
      @Override
      public void onClick(View v) {
          int i = v.getId();
          if (i == R.id.sign_in_button) {
              signIn();
  
          }
      }
  }
  </code></pre>