当我尝试使用谷歌登录时,为什么没有得到RESULT_OK的值?

时间:2017-08-24 15:29:34

标签: android

为什么我无法从Google登录?我的代码出了什么问题?我没有得到RESULT_OK (即-1)的值。为什么会这样?

我的代码有什么问题吗?

public class signin extends BaseActivity implements View.OnClickListener, 
GoogleApiClient.OnConnectionFailedListener {   
private SignInButton SignIn;
private static final int REQ_CODE = 9001;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_signin);
    SignIn = (SignInButton) findViewById(R.id.bn_login);

    SignIn.setOnClickListener(this);
    }
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent 
data) {
    super.onActivityResult(requestCode, resultCode, data);
    if (resultCode == Activity.RESULT_OK) {
        if (requestCode == REQ_CODE) {
            GoogleSignInResult result = 
 Auth.GoogleSignInApi.getSignInResultFromIntent(data);
            if (result.isSuccess()) {
                GoogleSignInAccount account = result.getSignInAccount();

                firebaseAuthWithGoogle(account);

            } else {
                // dismissProgressDialog();
            }
        } else {
            // dismissProgressDialog();
        }
    } else {
        //  dismissProgressDialog();
    }
}
@Override
public void onClick(View v) {

    switch (v.getId()){
        case R.id.bn_login:
            signIn();
            break;

    }
}

public void signIn(){

    Intent intent = Auth.GoogleSignInApi.getSignInIntent(mGoogleApiClient);
    startActivityForResult(intent,REQ_CODE);

}

private void firebaseAuthWithGoogle(final GoogleSignInAccount account) {
    AuthCredential credential = GoogleAuthProvider.getCredential(account.getIdToken(), null);
    mAuth.signInWithCredential(credential)
            .addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
                @Override
                public void onComplete(@NonNull Task<AuthResult> task) {
                    if (task.isSuccessful()) {
                        //Let's create the models quick(I know! it's weird time in this tutorial
                        //To be building it
                        User user = new User();
                        String photoUrl = null;
                        if (account.getPhotoUrl() != null) {
                            user.setPhotoUrl(account.getPhotoUrl().toString());
                        }

                        user.setEmail(account.getEmail());
                        user.setUser(account.getDisplayName());
                        user.setUid(mAuth.getCurrentUser().getUid());

                        FirebaseUtils.getUserRef(account.getEmail().replace(".", ","))
                                .setValue(user, new DatabaseReference.CompletionListener() {
                                    @Override
                                    public void onComplete(DatabaseError databaseError, DatabaseReference databaseReference) {
                                        mFirebaseUser = mAuth.getCurrentUser();

                                    }
                                });
                    } else {
                        //  dismissProgressDialog();
                    }
                }
            });
 }

 }

0 个答案:

没有答案