Android Facebook登录工作,但在登录屏幕上无尽地被困

时间:2017-05-02 20:20:28

标签: android facebook

我的Android应用程序上有Facebook登录,它成功登录,但登录后,它会保留在登录按钮屏幕上。换句话说,点击“登录Facebook”按钮并使用您的帐户登录后,您将陷入无休止的登录循环。我没有收到任何输出错误,所以我到目前为止调试的尝试都有不成功......一些帮助将不胜感激。

 private CallbackManager callbackManager;
    private static final int SIGN_IN_REQUEST_CODE = 1;
    private FirebaseListAdapter<ChatMessage> adapter;
    private TextView info;
    private LoginButton loginButton;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        final View mainActivity = getLayoutInflater().inflate(R.layout.activity_main, null);
        View loginButtonLayout = getLayoutInflater().inflate(R.layout.login_button, null);
        setContentView(mainActivity);
        Firebase.setAndroidContext(this);
        //If there is no account associated with user, follow this loop
        if (FirebaseAuth.getInstance().getCurrentUser() == null) {
            FacebookSdk.sdkInitialize(getApplicationContext());
            FacebookSdk.setApplicationId(getResources().getString(R.string.facebook_app_id));
            setContentView(loginButtonLayout);
            callbackManager = CallbackManager.Factory.create();
            info = (TextView)findViewById(R.id.info);
            loginButton = (LoginButton) loginButtonLayout.findViewById(R.id.login_button);
            loginButton.registerCallback(callbackManager, new FacebookCallback<LoginResult>() {
                @Override
                public void onSuccess(LoginResult loginResult) {
                    // Start sign in/sign up activity
                    setContentView(mainActivity);
                    startActivityForResult(
                            AuthUI.getInstance()
                                    .createSignInIntentBuilder()
                                    .build(),
                            SIGN_IN_REQUEST_CODE
                    );
                }

                @Override
                public void onCancel() {
                    Toast.makeText(MainActivity.this,
                            "We couldn't sign you in. Please try again later.",
                            Toast.LENGTH_LONG)
                            .show();
                }

                @Override
                public void onError(FacebookException e) {
                    Toast.makeText(MainActivity.this,
                            "We couldn't sign you in. Please try again later.",
                            Toast.LENGTH_LONG)
                            .show();
                }
            });

        } else {
            // User is already signed in. Therefore, display a welcome message
        }

1 个答案:

答案 0 :(得分:1)

您需要捕获请求并在onActivityResult()

上处理结果
相关问题