Почему onActivityResult () в моей активности для входа в Google не работает? - PullRequest
0 голосов
/ 22 мая 2019

Я создаю приложение для социальных сетей с помощью Firebase и в настоящее время пытаюсь добавить функцию входа в Google.Однако всякий раз, когда он проходит через OnActivityResult () моего LoginActivity, он все время говорит мне, что не может получить результат Auth.Я почти уверен, что это не проблема с моими отпечатками пальцев или репозиториями Maven, потому что я добавил их правильно и уверен, хотя и меньше, в отношении моих зависимостей на уровне приложения (используя 11.0.2, потому что именно эти учебники я используюуказано «Любые решения» (к сведению, метод OnActivityResult находится в самом низу предоставленного кода)

private ImageView googleSignInButton;
private EditText UserEmail, UserPassword;
private TextView NeedNewAccountLink;
private ProgressDialog loadingBar;

private FirebaseAuth mAuth;

private static final int RC_SIGN_IN = 1;
private GoogleApiClient mGoogleSignInClient;
private static final String TAG = "LoginActivity";


@Override
protected void onCreate(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_login);


    mAuth = FirebaseAuth.getInstance();


    NeedNewAccountLink = (TextView) findViewById(R.id.register_account_link);
    UserEmail = (EditText) findViewById(R.id.login_email);
    UserPassword = (EditText) findViewById(R.id.login_password);
    LoginButton = (Button) findViewById(R.id.login_button);
    googleSignInButton = (ImageView) findViewById(R.id.google_signin);
    loadingBar = new ProgressDialog(this);


    NeedNewAccountLink.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view)
        {
            SendUserToRegisterActivity();
        }
    });


    LoginButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view)
        {
            AllowingUserToLogin();
        }
    });

    // Configure Google Sign In
    GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
            .requestIdToken(getString(R.string.default_web_client_id))
            .requestEmail()
            .build();

    mGoogleSignInClient = new GoogleApiClient.Builder(this)
            .enableAutoManage(this, new GoogleApiClient.OnConnectionFailedListener() {
                @Override
                public void onConnectionFailed(@NonNull ConnectionResult connectionResult)
                {
                    Toast.makeText(LoginActivity.this, "Google Sign-In Attempt Failed", Toast.LENGTH_SHORT).show();
                }
            })
            .addApi(Auth.GOOGLE_SIGN_IN_API, gso)
            .build();


    googleSignInButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v)
        {
            signIn();
        }
    });
}



private void signIn()
{
    Intent signInIntent = Auth.GoogleSignInApi.getSignInIntent(mGoogleSignInClient);
    startActivityForResult(signInIntent, RC_SIGN_IN);
}



@Override
public void onActivityResult(int requestCode, int resultCode, Intent data)
{
    super.onActivityResult(requestCode, resultCode, data);

    if (requestCode == RC_SIGN_IN)
    {
        loadingBar.setTitle("Google Sign In");
        loadingBar.setMessage("Please wait, you are being logged in via Google");
        loadingBar.setCanceledOnTouchOutside(true);
        loadingBar.show();

        GoogleSignInResult result = Auth.GoogleSignInApi.getSignInResultFromIntent(data);

        if (result.isSuccess())
        {
            GoogleSignInAccount account = result.getSignInAccount();
            firebaseAuthWithGoogle(account);
            Toast.makeText(this, "Please wait, while we are getting your auth result...", Toast.LENGTH_SHORT).show();
        }
        else
        {
            Toast.makeText(this, "Can't get auth result.", Toast.LENGTH_SHORT).show();
            loadingBar.dismiss();
        }
    }
}
...