2016-12-02 35 views
1

我註冊了Google。然後我註銷並嘗試使用與Facebook相同的電子郵件地址登錄。正如我所料,用戶已經註冊了錯誤。當我收到錯誤信息時,我向linkWithCredantials提供了我從Facebook獲得的方法的憑證。當然,我也得到了getCurrentUser這裏的空錯誤,因爲任何用戶登錄。我不明白,我什麼時候會鏈接auth提供程序?而我的情況下,我想鏈接auth提供商與登出。可能嗎?我們可以在沒有用戶登錄的情況下將驗證提供商鏈接到Android版的Firebase:

對話:對不起,我的英語。

這是我的例子:

private void handleFacebookAccessToken(final AccessToken token) { 

    Log.d(TAG_FACEBOOK, "handleFacebookAccessToken:" + token); 

    AuthCredential credential = FacebookAuthProvider.getCredential(token.getToken()); 
    final AuthCredential linkCredential = credential; 

    mAuth.signInWithCredential(credential) 
      .addOnCompleteListener(getActivity(), new OnCompleteListener<AuthResult>() { 

       @Override 
       public void onComplete(@NonNull Task<AuthResult> task) { 
        Log.d(TAG_FACEBOOK, "signInWithCredential:onComplete:" + task.isSuccessful()); 

        if (task.isSuccessful()) { 
         replaceFragment(new ProfileFragment()); 
        } else { 
         toast("Facebook authentication failed."); 
        } 

       } 
      }).addOnFailureListener(getActivity(), new OnFailureListener() { 

     @Override 
     public void onFailure(@NonNull Exception e) { 

      if (e.getMessage().contains("account already exists")) { 


       //**here** 
       mAuth.getCurrentUser().linkWithCredential(linkCredential) 
         .addOnCompleteListener(getActivity(), new OnCompleteListener<AuthResult>() { 
          @Override 
          public void onComplete(@NonNull Task<AuthResult> task) { 
           Log.d(TAG_FACEBOOK, "linkWithCredential:onComplete:" + task.isSuccessful()); 

           if (!task.isSuccessful()) { 

           } 
          } 
         }); 
      } 
     } 
    }); 

} 

回答

相關問題