@Override public Completable loginWithGoogle(final Activity activity) { return Single.create((SingleOnSubscribe<AuthCredential>) e -> { googleClient = new GoogleApiClient.Builder(activity) .addApi(Auth.GOOGLE_SIGN_IN_API, gso) .build(); Intent signInIntent = Auth.GoogleSignInApi.getSignInIntent(googleClient); activity.startActivityForResult(signInIntent, RC_GOOGLE_SIGN_IN); googleSignInCompleteListener = result -> { if(result.isSuccess()) { AuthCredential credential = GoogleAuthProvider.getCredential(result.getSignInAccount().getIdToken(), null); e.onSuccess(credential); } else { e.onError(new Exception(result.getStatus().toString())); } }; }).flatMapCompletable(authCredential -> signInWithCredential(activity, authCredential)); }
private void handleSignInResult(GoogleSignInResult result) { if (result.isSuccess()) { Log.d(TAG, "googleSignIn:SUCCESS"); handleSignInSuccess(result.getSignInAccount()); } else { Log.d(TAG, "googleSignIn:FAILURE:" + result.getStatus()); Toast.makeText(getActivity(), R.string.network_error, Toast.LENGTH_LONG).show(); } }
@Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if (requestCode == RC_SIGN_IN) { GoogleSignInResult result = Auth.GoogleSignInApi.getSignInResultFromIntent(data); Log.i(TAG, "onActivityResult: "+result); Log.i(TAG, "onActivityResult: "+result.getStatus()); Log.i(TAG, "onActivityResult: "+result.getSignInAccount()); Log.i(TAG, "onActivityResult: "+result.isSuccess()); Log.i(TAG, "onActivityResult: "+result.toString()); if (result.isSuccess()) { // Google Sign In was successful, authenticate with Firebase GoogleSignInAccount account = result.getSignInAccount(); firebaseAuthWithGoogle(account); } else { // Google Sign In failed, update UI appropriately // [START_EXCLUDE] Toast.makeText(LoginActivity.this, "Error", Toast.LENGTH_SHORT).show(); Log.i(TAG, "onActivityResult: "+result.getStatus().getStatusMessage()); // [END_EXCLUDE] } hideProgress(); } } private void firebaseAuthWithGoogle(GoogleSignInAccount acct) {
private void handleSignInResult(GoogleSignInResult result){ Log.i("robin", "handleSignInResult:" + result.isSuccess()); if(result.isSuccess()){ Log.i("robin", "成功"); GoogleSignInAccount acct = result.getSignInAccount(); if(acct!=null){ Log.i("robin", "用户名是:" + acct.getDisplayName()); Log.i("robin", "用户email是:" + acct.getEmail()); Log.i("robin", "用户头像是:" + acct.getPhotoUrl()); Log.i("robin", "用户Id是:" + acct.getId());//之后就可以更新UI了 Log.i("robin", "用户IdToken是:" + acct.getIdToken()); tvMsg.setText("用户名是:" + acct.getDisplayName()+"\n用户email是:" + acct.getEmail()+"\n用户头像是:" + acct.getPhotoUrl()+ "\n用户Id是:" + acct.getId()+"\n用户IdToken是:" + acct.getIdToken()); } }else{ tvMsg.setText("登录失败"); Log.i("robin", "没有成功"+result.getStatus()); } }
public void onActivityResult(int requestCode, int resultCode, Intent data) { if (requestCode == RC_SIGN_IN) { final GoogleSignInResult result = Auth.GoogleSignInApi.getSignInResultFromIntent(data); if (result.isSuccess()) { AsyncTask<Void, Void, String> task = new AsyncTask<Void, Void, String>() { @Override protected String doInBackground(Void... params) { String token = null; try { token = GoogleAuthUtil.getToken(mContext, result.getSignInAccount().getAccount(), SCOPES); } catch (IOException | GoogleAuthException e) { e.printStackTrace(); } return token; } @Override protected void onPostExecute(String token) { GoogleSignInAccount acct = result.getSignInAccount(); mListener.onGoogleAuthSignIn(token, acct.getId()); } }; task.execute(); } else { mListener.onGoogleAuthSignInFailed(result.getStatus().getStatusMessage()); } } }
private void handleSignInResult(GoogleSignInResult result) { if (BuildConfig.DEBUG) { Log.d(MCXApplication.LOG_TAG, "handleSignInResult:" + result.isSuccess() + " " + result.getStatus().getStatusCode() + result.getStatus().hasResolution()); } if (result.isSuccess()) { // Signed in successfully, show authenticated UI. GoogleSignInAccount acct = result.getSignInAccount(); User user = new User(); user.setProvider(PROVIDER_NAME); user.setProviderDisplayName("Google+"); user.setUserId(acct.getId()); user.setUserName(acct.getId()); user.setDisplayName(acct.getDisplayName()); user.setMail(acct.getEmail()); this.mUserHelper.setCurrentUser(user); if (this.mUserSessionCallback != null) { this.mUserSessionCallback.onLogin(); } } else { // Signed out, show unauthenticated UI. this.mUserSessionCallback.onLogout(); } }