title: Facebook authentication in firebase not working
body: <p>What I'm trying to do is login with Facebook using Firebase and then get name, email, profile picture and uid and then store it to Firebase Database.</p>
  
  <p>Everything is working fine until clicking on login button and then the Facebook account window pop up. After that, when I select an account by clicking "<em>Continue With Rishabh</em>", nothing happens.</p>
  
  <p>No authentication, no error, nothing. Same Facebook account selection window stays on screen and nothing happens.</p>
  
  <p>Any help will be appreciated.</p>
  
  <p>Here is my SignInActivity.java:       </p>
  
  <pre><code>    @Override
      protected void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
          setContentView(R.layout.activity_sign_in);
  
          mAuth = FirebaseAuth.getInstance();
  
          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());
                  } else {
                      // User is signed out
                      Log.d(TAG, "onAuthStateChanged:signed_out");
                  }
                  // ...
              }
          };
  
          mSignInToolbar = (Toolbar) findViewById(R.id.signInToolbar);
          setSupportActionBar(mSignInToolbar);
          getSupportActionBar().setDisplayHomeAsUpEnabled(true);
  
          mRef = FirebaseDatabase.getInstance().getReference().child("Users");
          mRef.keepSynced(true);
  
          mEmailField = (EditText) findViewById(R.id.emailField);
          mPasswordField = (EditText) findViewById(R.id.passowrdField);
          mSigninBtn = (Button) findViewById(R.id.signinBtn);
          mProgress = new ProgressDialog(this);
  
          // Initialize Facebook Login button
          FacebookSdk.sdkInitialize(getApplicationContext());
          mCallbackManager = CallbackManager.Factory.create();
          loginButton = (LoginButton) findViewById(R.id.button_facebook_login);
          loginButton.setReadPermissions("email", "public_profile");
          loginButton.registerCallback(mCallbackManager, new FacebookCallback&lt;LoginResult&gt;() {
              @Override
              public void onSuccess(LoginResult loginResult) {
                  Log.d(TAG, "facebook:onSuccess:" + loginResult);
                  handleFacebookAccessToken(loginResult.getAccessToken());
              }
  
              @Override
              public void onCancel() {
                  Log.d(TAG, "facebook:onCancel");
                  // ...
              }
  
              @Override
              public void onError(FacebookException error) {
                  Log.d(TAG, "facebook:onError", error);
                  // ...
              }
          });
  
      }
  
  
      @Override
      public void onStart() {
          super.onStart();
          mAuth.addAuthStateListener(mAuthListener);
      }
  
  
      @Override
      protected void onActivityResult(int requestCode, int resultCode, Intent data) {
          super.onActivityResult(requestCode, resultCode, data);
  
          // Pass the activity result back to the Facebook SDK
          mCallbackManager.onActivityResult(requestCode, resultCode, data);
      }
  
  
      private void handleFacebookAccessToken(AccessToken token) {
          Log.d(TAG, "handleFacebookAccessToken:" + token);
          mProgress.setMessage("Logging in...");
          mProgress.show();
  
          AuthCredential credential = FacebookAuthProvider.getCredential(token.getToken());
          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(SignInActivity.this, "Authentication failed.",
                                      Toast.LENGTH_SHORT).show();
                              mProgress.dismiss();
                          }else{
                              String uid=task.getResult().getUser().getUid();
                              String name=task.getResult().getUser().getDisplayName();
                              String email=task.getResult().getUser().getEmail();
                              String image=task.getResult().getUser().getPhotoUrl().toString();
  
                              DatabaseReference childRef = mRef.child(uid);
                              childRef.child("name").setValue(name);
                              childRef.child("email").setValue(email);
                              childRef.child("image").setValue(image);
  
                              mProgress.dismiss();
  
                              Intent mainIntent = new Intent(getApplicationContext(), MainActivity.class);
                              mainIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
                              startActivity(mainIntent);
  
  
                          }
  
                      }
                  });
      }
  </code></pre>