Я создаю приложение для социальных сетей с помощью 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();
}
}
}