Вход с Facebook и Google аккаунт в Android Studio не работает нормально - PullRequest
0 голосов
/ 20 декабря 2018

Я работаю над социальным входом (войдите через Google и Facebook).

Вход через Google работает нормально.Но я сталкиваюсь с проблемой при входе в Facebook.

Когда загружается фрагмент входа в систему, он автоматически вызывает фрагмент входа в систему, регистрируется как обратный вызов без нажатия кнопки «Прослушивание» на кнопке facebooklogin и прямой переход к активности профиля.

НоЯ хочу, чтобы когда я нажимал кнопку facebooklogin, а затем переходил к учетным данным для входа после подтверждения учетной записи, я мог просматривать профиль.

Когда я выхожу из системы, кнопка входа в систему также перенаправляет на профиль деятельности.Как я могу обработать код запроса Google и Facebook?

Вот мой код:

  LoginManager.getInstance().logInWithReadPermissions(this,Arrays.asList("email"));
    facebookLogin.registerCallback(callbackManager, new FacebookCallback<LoginResult>() {
        @Override
        public void onSuccess(LoginResult loginResult) {
            GraphRequest request = GraphRequest.newMeRequest(
                    loginResult.getAccessToken(),
                    new GraphRequest.GraphJSONObjectCallback() {
                        @Override
                        public void onCompleted(JSONObject object, GraphResponse response) {
                            Log.v("LoginActivity", response.toString());
                            Log.v("LoginObject", object.toString());
                            try {
                                userId = object.getString("id");
                                useremail = object.getString("email");
                                username = object.getString("name");
    login(useremail,userId,username,false,true);

                                Log.e("email",useremail);
                                Log.e("name",username);
                            } catch (JSONException e) {
                                e.printStackTrace();
                            }

                        }
                    });
            Bundle parameters = new Bundle();
            parameters.putString("fields", "id,name,email,gender,birthday");
            request.setParameters(parameters);
            request.executeAsync();
        }

        @Override
        public void onCancel() {
            Log.e("Cancel","cancel");
        }

        @Override
        public void onError(FacebookException error) {
            Log.e("Error",error.toString());
        }
    });

А вот метод для обработчика результата действия:

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
    callbackManager.onActivityResult(requestCode,resultCode,data);
    super.onActivityResult(requestCode, resultCode, data);
    if (requestCode == REQ_CODE){
        GoogleSignInResult result = Auth.GoogleSignInApi.getSignInResultFromIntent(data);
        handleResult(result);
  }
}
...