Я пытаюсь создать действие входа в систему с помощью facebook на Firebase, но когда я пытаюсь войти в систему, появляется сообщение «Ошибка аутентификации», и я получаю эту ошибку:
E/GraphResponse: {HttpStatus: 400, errorCode: 100, subErrorCode: 33, errorType: GraphMethodException, errorMessage: Unsupported get request. Object with ID 'xxxxxxxxxxxxxxx' does not exist, cannot be loaded due to missing permissions, or does not support this operation.
Это мой код:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mAuth = FirebaseAuth.getInstance();
mCallbackManager = CallbackManager.Factory.create();
}
private void updateUI() {
Toast.makeText(MainActivity.this, "Logado!", Toast.LENGTH_LONG).show();
Intent intent = new Intent(MainActivity.this, ScreenActivity.class);
startActivity(intent);
}
public void fbClicked(View view) {
fbButton = findViewById(R.id.facebookButton);
fbButton.setEnabled(false);
LoginManager.getInstance().logInWithReadPermissions(MainActivity.this, Arrays.asList("email", "public_profile"));
LoginManager.getInstance().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
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
mCallbackManager.onActivityResult(requestCode, resultCode, data);
super.onActivityResult(requestCode, resultCode, data);
}
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) {
if (task.isSuccessful()) {
// Sign in success, update UI with the signed-in user's information
Log.d(TAG, "signInWithCredential:success");
FirebaseUser user = mAuth.getCurrentUser();
fbButton.setEnabled(true);
updateUI();
} else {
// If sign in fails, display a message to the user.
Log.w(TAG, "signInWithCredential:failure", task.getException());
Toast.makeText(MainActivity.this, "Authentication failed.",
Toast.LENGTH_SHORT).show();
fbButton.setEnabled(true);
}
}
});
}
}
Если вы уверены, что выполнили все правильно, следуя документации, возможно, проблема не на вашей стороне. Сегодня Facebook объявил, что они подверглись хакерской атаке и, вероятно, произошла утечка данных многих пользователей, поэтому, я просто предполагаю, что, возможно, они временно приостановили некоторые действия.