проблемы с интеграцией входа в gmail в приложении для Android?

#java #android #android-studio

#java #Android #android-studio

Вопрос:

я хочу создать приложение типа swiggy. я интегрировал вход в систему gmail на своем экране входа в систему, и при успешном выполнении он меняется на активность панели мониторинга, но когда я нажимаю на вкладку учетной записи, он возвращается на экран панели мониторинга вместо активности учетной записи. пожалуйста, помогите……

экран входа в систему

Информационная панель

если вам нужна какая-либо часть кода, просто прокомментируйте, и я обновлю

 //login screen part
//check if already signed in using google
account = GoogleSignIn.getLastSignedInAccount(this);

        if(account!=null) {
            finish();
            Intent intent = new Intent(this, DashboardActivity.class);
            startActivity(intent);
            return;
        }


//onclicklistener added
//method
private void googleSignin() {
        Intent signInIntent = mGoogleSignInClient.getSignInIntent();
        startActivityForResult(signInIntent, RC_SIGN_IN);
    }

onActivity result(//params provided){
if(googleLogin){
            // Result returned from launching the Intent from GoogleSignInClient.getSignInIntent(...);
            if (requestCode == RC_SIGN_IN) {
                // The Task returned from this call is always completed, no need to attach
                // a listener.
                googleLogin = false;                      //set to false so that it can be set true again if login is actually successful
                Task<GoogleSignInAccount> task = GoogleSignIn.getSignedInAccountFromIntent(data);
                handleSignInResult(task);
            }

        }
}
private void handleSignInResult(Task<GoogleSignInAccount> completedTask) {

        try {
            GoogleSignInAccount account = completedTask.getResult(ApiException.class);

            // Signed in successfully, show authenticated UI.
            sessionManager.setLogin(true);
            googleLogin = true;

            Intent intent = new Intent(this,DashboardActivity.class);
            intent.putExtra("googleLogin", googleLogin);
            startActivity(intent);
            finish();


        }

//Dashboard part
 Intent i = new Intent(DashboardActivity.this ,MyAccountActivity.class);
i.putExtra("googleLogin", googleLogin);
startActivity(i);


//myaccount part
 if(googleLogin){
            GoogleSignInAccount acct = GoogleSignIn.getLastSignedInAccount(this);
            if (acct != null) {
                String personName = acct.getDisplayName();
                //System.out.println(personName);          working fine
                account_name.setText(personName);

                String personEmail = acct.getEmail();
                //System.out.println(personEmail);         fine
                account_email.setText(personEmail);

                account_mobile.setText(" 91 1234567890");

//                System.out.println(googleLogin);
//                System.out.println(fbLogin);
            }

        }
 

Комментарии:

1. Вы должны опубликовать код здесь, так как, как я обнаружил, это логическая ошибка. Если вам нужна помощь, вы должны поделиться блоком кода, в котором у вас возникла эта проблема.

2. в том-то и дело, что в logcat нет ошибки. приложение не выходит из строя или что-то в этом роде.

Ответ №1:

решена эта проблема. проблема заключалась в том, что gmail не смог предоставить данные учетной записи для использования, когда я попытался отобразить их в СВОЕЙ УЧЕТНОЙ записи, которую я интегрировал в свое приложение, поэтому он продолжал сбоить. код был правильным, поэтому он не выдавал никаких ошибок, я даже пытался его зарегистрировать. там он показывал правильные данные, но все равно не отображал результат в текстовых представлениях. итак, что я сделал, так это использовал общие настройки. каждый раз, когда пользователь входит в систему с помощью gmail, в них сохраняются данные, и я извлекаю их из СВОЕЙ УЧЕТНОЙ записи, и да, результаты отображаются правильно. дайте мне знать, если вам нужна дополнительная помощь.