0

私は自分のAPPにFirebaseのFacebook資格で2回サイレントにサインインすると、このエラーメッセージを返します。 内部エラーが発生しました。 [無効なaccess_token、エラーコード43]

An internal error has occured. [ invalid access_token, error code 43. ] 

は、私は二回ログインしたとき、その後、 FacebookAuthProvider.getCredential(accessToken);で資格を作成SharedPreferencesにおけるFacebookのトークン最初のログインを保存し、それを得ます。最後に、次のコードを使用してこの資格情報でサインインします。

private void signInFirebase(AuthCredential credential, final TaskCompleteListener signInListener) { 
    FirebaseAuth.getInstance().signInWithCredential(credential) 
      .addOnCompleteListener(new OnCompleteListener<AuthResult>() { 
       @Override 
       public void onComplete(@NonNull Task<AuthResult> task) { 
        if (task.isSuccessful()) { 
         Logger.i(TAG,"Firebase login success."); 
        } else { 
         Logger.e(TAG,"Firebase login failure:"+task.getException().getMessage()); 
        } 
       } 
      }); 
} 

常にタイトルのように印刷されます。 私は何をしてみてください、と動作しない:

1.change Firebase version from 9.0.2 to 9.4.0 
2.search error message in Google directly 

どのようにこの問題を解決するために?

答えて

1

Firebaseは、アプリの再起動の間にユーザーのサインイン状態を維持しています。だから、自分でFacebookのトークンを永続させる代わりに、monitor whether the user is already authenticated with Firebase。そのドキュメントから

FirebaseAuth.getInstance(). addAuthStateListener(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"); 
     } 
     // ... 
    } 
}); 
+0

ありがとうございました!できます。 – Waylent

関連する問題