Я добавил логин Facebook в свое приложение, и оно отлично работает на моем телефоне и многих других телефонах, но на некоторых телефонах это не так.Я пытался воспроизвести проблему на одном из этих устройств с помощью эмулятора, но на эмуляторе он работает нормально!это код, который я использовал, надеюсь, вы поможете мне разобраться в чем проблема
mCallbackManager = CallbackManager.Factory.create();
loginButton = (LoginButton) findViewById(R.id.Login_button);
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
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
// Pass the activity result back to the Facebook SDK
mCallbackManager.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");
finish();
Intent intent = new Intent(MainActivity.this, A.class);
DatabaseReference myRef = FirebaseDatabase.getInstance().getReference("users");
FirebaseUser userr = FirebaseAuth.getInstance().getCurrentUser();
myRef.child(userr.getUid()).child("Name").setValue(userr.getDisplayName());
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
} 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();
LoginManager.getInstance().logOut();
}
}
});
}