代码之家  ›  专栏  ›  技术社区  ›  Umar Hussain

Google Fit身份验证的不同帐户选择

  •  0
  • Umar Hussain  · 技术社区  · 8 年前

    我可以选择在我的应用程序中集成Google登录。现在我正在集成google fit,以便从中读取数据。但问题是在对健身数据的权限请求期间,它没有提供从设备上的Google帐户中进行选择的选项。这是我请求权限时使用的代码:

    FitnessOptions fitnessOptions = FitnessOptions.builder()
                 .addDataType(DataType.TYPE_STEP_COUNT_DELTA, FitnessOptions.ACCESS_READ)
                 .addDataType(DataType.AGGREGATE_STEP_COUNT_DELTA, FitnessOptions.ACCESS_READ)
                 .build();
    GoogleSignIn.requestPermissions(
                                MyActivity.this, // your activity
                                GOOGLE_FIT_PERMISSIONS_REQUEST_CODE,
                                null, // passing null specifically to ask for account selection
                                fitnessOptions);
    

    此代码直接移动到用于Google登录的帐户的权限页。 当我使用其他登录选项时,如Facebook,其中不调用Google登录,上面的代码完美地显示了帐户选择对话框。

    当用户需要不同的电子邮件帐户登录google和fitbit时,这就产生了问题。

    对于google fit和google登录,是否有单独的账户解决方案? P.S:我的google登录邮件与firebase和后端逻辑链接,因此要求用户使用与google fit关联的google帐户对我来说没有帮助。

    1 回复  |  直到 8 年前
        1
  •  0
  •   Umar Hussain    8 年前

    AuthCredential credential = 
               GoogleAuthProvider.getCredential(googleSignInAccount.getIdToken(), null);
    firebaseAuth.signInWithCredential(credential)
    .addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
        @Override
        public void onComplete(@NonNull Task<AuthResult> task) {
            if (App.getGoogleApiHelper().isConnected()) {
                // after checking if google client is available to signout from google auth
                Auth.GoogleSignInApi.signOut(App.getGoogleApiHelper().getGoogleApiClient());
            }
            if (task.isSuccessful()) {
                // Sign in success, update UI with the signed-in user's information
                Timber.tag(TAG).d("signInWithCredential: success");
            } else {
                // If sign in fails, display a message to the user.
                Timber.tag(TAG).d(task.getException(), "signInWithCredential:failure");
            }
    
        }
    });