Проблемы с входом в Facebook на некоторых устройствах - PullRequest
0 голосов
/ 11 мая 2019

Я добавил логин 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();

                    }


                }
            });
}
...