не может пройти аутентификацию с помощью Google Client API Android

Я пробую приложение для Android с помощью Firebase. Мне нужно пройти аутентификацию с помощью Google Client API, чтобы использовать Firebase. Но я не могу пройти аутентификацию с помощью Google Client API.

В следующем коде GoogleSignInResult.isSuccess() возвращает false. GoogleSignInResult.getState().getStateMessage() возвращает ноль. Итак, я не знаю, почему не удалось выполнить аутентификацию Google.

Есть ли что-то, что вам нужно сделать при использовании аутентификации Google? Заранее спасибо.

Примечание. Я могу пройти аутентификацию с помощью Google Client API, когда устанавливаю release.apk с помощью команды «add install release.apk». Но я не могу пройти аутентификацию при установке через Google Play Store (не BETA, а RELEASE).

Снимок экрана: после нажатия кнопки входа (кнопка входа в систему: нижняя правая кнопка)  введите описание изображения здесь

Код: в onActivityResult GoogleSignInResult.isSuccess() возвращает false.

public class LoginActivity extends AppCompatActivity {
    private static final int REQUEST_CODE_SIGN_IN = 9001;

    private FirebaseAuth firebaseAuth;
    public static GoogleApiClient googleAPIClient;

    private DatabaseReference usersRef;

    private ProgressDialog progressDialog;

    private GoogleApiClient.OnConnectionFailedListener onConnectionFailedListener = new GoogleApiClient.OnConnectionFailedListener() {
        @Override
        public void onConnectionFailed(@NonNull ConnectionResult connectionResult) {
            Toast.makeText(LoginActivity.this, "Google Play Services error.", Toast.LENGTH_SHORT).show();
        }
    };

    @Override
    public void onCreate(Bundle savedInstanceState) {
        System.out.println("*** LoginActivity.onCreate - start");
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_login);

        try {
            progressDialog = new ProgressDialog(this);

            GoogleSignInOptions options = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
                    .requestIdToken(getString(R.string.default_web_client_id))
                    .requestEmail()
                    .build();

            googleAPIClient = new GoogleApiClient.Builder(this)
                    .enableAutoManage(this, onConnectionFailedListener)
                    .addApi(Auth.GOOGLE_SIGN_IN_API, options)
                    .build();

            firebaseAuth = FirebaseAuth.getInstance();
        } catch (Exception e) {
            e.printStackTrace();
        }
        System.out.println("*** LoginActivity.onCreate - start");
    }

    @Override
    public void onStop() {
        System.out.println("LoginActivity.onStop - start");
        if (null != usersRef) {
            usersRef.removeEventListener(valueEventlistener);
        }
        super.onStop();
    }

    public void onCancelButtonClick(View view) {
        finish();
    }

    public void onLoginButtonClick(View view) {
        System.out.println("*** LoginActivity.onLoginButtonClick - start");
        Intent intent = Auth.GoogleSignInApi.getSignInIntent(googleAPIClient);
        startActivityForResult(intent, REQUEST_CODE_SIGN_IN);
        System.out.println("*** LoginActivity.onLoginButtonClick - end");
    }

    @Override
    public void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        System.out.println("*** LoginActivity.onActivityResult - start");

        if (requestCode == REQUEST_CODE_SIGN_IN) {
            System.out.println("*** LoginActivity.onActivityResult - in if");
            GoogleSignInResult result = Auth.GoogleSignInApi.getSignInResultFromIntent(data);
            if (result.isSuccess()) {
                System.out.println("*** LoginActivity.onActivityResult - in if success");
                GoogleSignInAccount account = result.getSignInAccount();
                firebaseAuthWithGoogle(account);
            } else {
                System.out.println("*** LoginActivity.onActivityResult - in if error");
                System.out.println("*** LoginActivity.onActivityResult - in if error state:" + result.getStatus().getStatusMessage());
                Toast.makeText(LoginActivity.this, "Error:" + result.getStatus().getStatusMessage(), Toast.LENGTH_SHORT).show();
            }
        }
        System.out.println("*** LoginActivity.onActivityResult - end");
    }

    public void firebaseAuthWithGoogle(GoogleSignInAccount account) {
        // firebase authentication
    }

person Yuki.M    schedule 20.12.2017    source источник


Ответы (1)


Вы добавили отпечаток SHA1 версии выпуска в настройках проекта Firebase?

person Rahul Chandrabhan    schedule 20.12.2017
comment
Нет, не видел. Я не знал, что SHA1 apk, созданного с помощью Generate Signed APK, вообще отличается от одного из выпущенных apk в Google Play Store. Большое спасибо! - person Yuki.M; 21.12.2017
comment
Мне следовало прочитать следующую статью. support.google.com/googleplay/android- developer / answer / 7384423 - person Yuki.M; 21.12.2017