0

Когда я дважды регистрирую мой APP дважды с учетными данными Facebook Firebase, он возвращает это сообщение об ошибке.Произошла внутренняя ошибка. [invalid access_token, код ошибки 43.]

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

откладываю маркер Facebook в SharedPreferences, когда первый вход в систему, и получить его, когда дважды войти в систему, а затем создать учетные данные с FacebookAuthProvider.getCredential(accessToken);. Наконец, я регистрирую эти учетные данные, используя следующий код:

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

Смежные вопросы