0

我想通過Firebase將Facebook登錄集成到我的應用程序。當用戶點擊「Continue with Facebook」按鈕時,我看到一個藍色的進度條,然後按鈕上的文本變爲「註銷」。我打算在登錄成功時打開另一個活動。我已經使用startActivity()方法。然而,沒有任何反應。請幫忙!如何在Facebook登錄Android應用程序後啓動我的MainActivity?

下面是我的onCreate登錄活動

 callbackManager = CallbackManager.Factory.create(); 
    // Register your callback 
    LoginManager.getInstance().registerCallback(callbackManager, 
      // If the login attempt is successful, then call onSuccess and pass the LoginResult 
      new FacebookCallback<LoginResult>() { 
       @Override 
       public void onSuccess(LoginResult loginResult) { 

        // The HomeScreen.class should load, it is not happening. 
        startActivity(new Intent(getApplicationContext() ,HomeScreen.class)); 
        // I get this Log on my screen, which is proof that this loop is executed 
        Log.w("TAG", "User ID: " + 
          loginResult.getAccessToken().getUserId() + "\n" + 
          "Auth Token: " + loginResult.getAccessToken().getToken()); 
       } 
       // If the user cancels the login, then call onCancel 
       @Override 
       public void onCancel() { 
        Toast.makeText(getApplicationContext(), 
          "Canceled login through Facebook",Toast.LENGTH_LONG).show(); 
       } 
       // If an error occurs, then call onError 
       @Override 
       public void onError(FacebookException exception) { 
        Toast.makeText(getApplicationContext(), 
          " Facebook Login failed!",Toast.LENGTH_LONG).show(); 
        Log.w("FB failed", exception); 
       } 
      }); 

我允許谷歌登錄還通過火力地堡()方法,爲了這個,我已經寫了onActivityResult方法的提取物。它是這樣的 -

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()) { 
      // Google Sign In was successful, authenticate with Firebase 
      GoogleSignInAccount account = result.getSignInAccount(); 
      firebaseAuthWithGoogle(account); 

     } else { 
      // Handle failed signin here 
      Toast.makeText(getApplicationContext(), 
        "Google Sign In Failed, Please try with Facebook or Email!", Toast.LENGTH_LONG).show(); 
     } 
    } 
    callbackManager.onActivityResult(requestCode, resultCode, data); 

} 

回答

0

試試這個:

public void onSuccess(LoginResult loginResult) { 

      Intent intent = new Intent(loginActivity.this,HomeScreen.class); 
      startActivity(intent); 

      } 
+0

嗯,沒有沒有工作! – Chirag

0

如果您正在使用的片段比將它添加到你的fb登錄按鈕

buttonLogin.setFragment(this); 

,並在你的onSuccess()方法,嘗試此

startActivity(new Intent(getActivity() ,HomeScreen.class)); 
0

嘗試使用permissio ns當您嘗試使用Facebook登錄時。例如:

LoginManager.getInstance().logInWithReadPermissions(getActivity(), Arrays.asList("public_profile", "email", "user_birthday", "user_photos")); 
相關問題