0

firebase를 사용하여 Android에서 앱을 개발하고 있습니다. 사용자가 자격 증명을 전달할 때 사용자를 기록하는 메소드가있는 로그인 활동을 만들었습니다. 사용자 생성은 이미 완료되었습니다. 토큰이 onAuthenticated 콜백에 수신되어 사용자가 자격 증명을 입력하지 않고도 앱을 열면 자동으로 다음 번에 사용자를 기록 할 수 있습니다. 여기 Firebase authWithOauthToken이 작동하지 않습니다.

코드

private void loginWithPassword(final String email, String password) { 
    progressDialog.show(); 
    FirebaseConnections.getConnection().authWithPassword(email, password, 
      new Firebase.AuthResultHandler() { 
       @Override 
       public void onAuthenticated(AuthData authData) { 
        // Authentication just completed successfully :) 
        IGStorePreference.getInstance().saveString(Constants.TOKEN, authData.getToken()); 
        IGStorePreference.getInstance().saveString(Constants.UID, authData.getUid()); 
        IGStorePreference.getInstance().saveString(Constants.PROVIDER, authData.getProvider()); 
        dismissProgressDialog(); 
       } 

       @Override 
       public void onAuthenticationError(FirebaseError error) { 
        // Something went wrong :(
        dismissProgressDialog(); 
        Snackbar.make(parentView, error.getMessage(), Snackbar.LENGTH_LONG).show(); 
       } 
      }); 
} 

입니다 그리고 나는 우리가

private void checkIfTokenExistAndLogin() { 
    if (IGStorePreference.getInstance().isPrefExists(Constants.TOKEN)) { 
     progressDialog.show(); 
     String provider = IGStorePreference.getInstance().getString(Constants.PROVIDER); 
     String token = IGStorePreference.getInstance().getString(Constants.TOKEN); 
     FirebaseConnections.getConnection().authWithOAuthToken(provider, token, new Firebase.AuthResultHandler() { 
      @Override 
      public void onAuthenticated(AuthData authData) { 
       IGStorePreference.getInstance().saveString(Constants.TOKEN, authData.getToken()); 
       IGStorePreference.getInstance().saveString(Constants.UID, authData.getUid()); 
       IGStorePreference.getInstance().saveString(Constants.PROVIDER, authData.getProvider()); 
       dismissProgressDialog(); 
      } 

      @Override 
      public void onAuthenticationError(FirebaseError firebaseError) { 
       dismissProgressDialog(); 
       Snackbar.make(parentView, firebaseError.getMessage(), Snackbar.LENGTH_LONG).show(); 
      } 
     }); 
    } 
} 

에 사용자가 로그인 할 토큰 토큰이 있는지 여부에서 onCreate 확인 그러나 문제는 내가 로그인 사용자와 동안 오류를 얻고 있다는 것입니다 내가 빠진 것을 도와주십시오.

이것은 매회받는 오류입니다.

FirebaseError: Invalid authentication credentials provided.

답변

1

authWithOAuthToken은 소셜 공급자와 로그인하는 데 사용됩니다. 예를 들어 사용자가 Google에 로그인하여 Google에서 OAuth 토큰을 반환합니다. 그런 다음 응용 프로그램은 AuthWithOAuthToken을 통해이 OAuth 토큰을 Firebase 인증 서버로 보냅니다. 서버가 OAuth 토큰을 확인한 후 사용자가 로그인 할 수 있습니다.

귀하의 경우 사용자가 이메일/비밀번호로 로그인했습니다. 귀하가받은 토큰은 Firebase 인증 서버가 발행 한 Firebase 인증 토큰입니다. 이는 사회 공급자가 발행 한 OAuth 토큰이 아닙니다.

자세한 내용은 문서를 참조하십시오. https://firebase.google.com/support/guides/firebase-android#sign_a_user_in_with_a_social_provider_numbered