0

私たちのプロジェクトの1つにFirebase Facebook認証を実装しています。私たちはドキュメントに記載されている手順も踏襲しました。ここでFirebaseフェイスブック認証に奇妙なアクティビティを表示

はOAuthのURLです:

https://<APP_NAME>.firebaseapp.com/__/auth/handler 

私は(すなわちAPP_ID & APP_SECRET)と同様の資格情報の残りの部分を追加しました、しかもアプリは開発段階にあると私はkey hashを追加しましたFacebookのポータルとFirebaseのポータルにもアクセスできます。

Login初期の流れがうまく動作しますが、ユーザーconfirm許可がアクセス権を付与する際に、callbackレジスタはどちらnegativepositive確認して、全く応答しません。

 private static final String TAG = "FacebookLogin"; 

    private CallbackManager mCallbackManager; 

    private FirebaseAuth mAuth; 
    private FirebaseAuth.AuthStateListener mAuthListener; 

mAuth = FirebaseAuth.getInstance(); 
     mAuthListener = new FirebaseAuth.AuthStateListener() { 
      @Override 
      public void onAuthStateChanged(@NonNull FirebaseAuth firebaseAuth) { 
       FirebaseUser user = firebaseAuth.getCurrentUser(); 
       if (user != null) { 
        // User is signed in 
        Log.d(TAG, "onAuthStateChanged:signed_in:" + user.getUid()); 
       } else { 
        // User is signed out 
        Log.d(TAG, "onAuthStateChanged:signed_out"); 
       } 
       // ... 
      } 
     }; 

     // Initialize Facebook Login button 
     mCallbackManager = CallbackManager.Factory.create(); 
     LoginButton loginButton = (LoginButton) findViewById(R.id.button_facebook_login); 
     loginButton.setReadPermissions("email", "public_profile"); 
     loginButton.registerCallback(mCallbackManager, new FacebookCallback<LoginResult>() { 
      @Override 
      public void onSuccess(LoginResult loginResult) { 
       Log.d(TAG, "facebook:onSuccess:" + loginResult); 
       handleFacebookAccessToken(loginResult.getAccessToken()); 
      } 

      @Override 
      public void onCancel() { 
       Log.d(TAG, "facebook:onCancel"); 
       // ... 
      } 

      @Override 
      public void onError(FacebookException error) { 
       Log.d(TAG, "facebook:onError"+ error); 
       // ... 
      } 
     }); 

@Override 
    public void onStart() { 
     super.onStart(); 
     mAuth.addAuthStateListener(mAuthListener); 
    } 

    @Override 
    public void onStop() { 
     super.onStop(); 
     if (mAuthListener != null) { 
      mAuth.removeAuthStateListener(mAuthListener); 
     } 
    } 

    private void handleFacebookAccessToken(AccessToken token) { 
     Log.d(TAG, "handleFacebookAccessToken:" + token); 

     AuthCredential credential = FacebookAuthProvider.getCredential(token.getToken()); 
     mAuth.signInWithCredential(credential) 
       .addOnCompleteListener(this, new OnCompleteListener<AuthResult>() { 
        @Override 
        public void onComplete(@NonNull Task<AuthResult> task) { 
         Log.d(TAG, "signInWithCredential:onComplete:" + task.isSuccessful()); 

         // If sign in fails, display a message to the user. If sign in succeeds 
         // the auth state listener will be notified and logic to handle the 
         // signed in user can be handled in the listener. 
         if (!task.isSuccessful()) { 
          Log.w(TAG, "signInWithCredential", task.getException()); 
          Toast.makeText(FacebookLoginActivity.this, "Authentication failed.", 
            Toast.LENGTH_SHORT).show(); 
         } 

         // ... 
        } 
       }); 
    } 

私たちが何かを逃した場合はお知らせください。

は、ここでは、コードの私たちの作品です。私はcallbackというURLについて何か間違っていると仮定しています。そのため、FirebaseのマニュアルでそのURLを構築する方法について明確に述べていないため、同じ情報をもう少し詳しくお聞きしてみてください。前もって感謝します。

答えて

0

あなたは

mCallbackManager.onActivityResult(requestCode、resultCodeが、データ)を追加しました。

あなたのonActivityResultブロックには?

編集Firebase https://github.com/firebase/quickstart-android/blob/master/auth/app/src/minSdkJellybean/java/com/google/firebase/quickstart/auth/FacebookLoginActivity.javaからサンプルを参照

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    super.onActivityResult(requestCode, resultCode, data); 
    mCallbackManager.onActivityResult(requestCode, resultCode, data); 
} 

これが追加されていない場合、コールバックが存在しないであろう。

+0

私たちはしませんでしたが、これについて簡単にお聞かせください。 – silverFoxA

+0

私は自分の答えを更新しました。試してみてください:) – Kendroid

+0

なぜ彼らはドキュメントでそれを言及していないのだろうか – silverFoxA

関連する問題