Facebook Authentication with Firebase doesn't work correctly in android

36 views Asked by At

I am newbie in authenticate facebook with firebase in android application now I am building an android application which I need to login with facebook I follow many tutorials on youtube and facebook developer documentation but nothing work with me. Nothing happened when I click on Login with Facebook, no error, also no show me a message in logcat that request successful and no users added to firebase user this is my code RegisterFragment.java

public class RegisterFragment extends Fragment {


    public RegisterFragment() {
        // Required empty public constructor
    }

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

    }

    private FragmentRegisterBinding binding;
    private HelperClass helper;
    private CallbackManager callbackManager;
    private String TAG = "FragmentRegister";
    private FirebaseAuth mAuth;

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {

        binding = FragmentRegisterBinding.inflate(inflater,container,false);
        mAuth = FirebaseAuth.getInstance();
        helper = HelperClass.getInstance(this);

        callbackManager = CallbackManager.Factory.create();
        binding.btnRegisterFacebook.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                try {
                    FacebookSdk.sdkInitialize(getContext());
                    LoginManager.getInstance().logInWithReadPermissions(getActivity(), Arrays.asList("public_profile", "email"));
                } catch (Exception e) {
                    Toast.makeText(getContext(),e.getMessage(),Toast.LENGTH_SHORT).show();
                }
            }
        });

        LoginWithFB();

        return binding.getRoot();
    }

    private void LoginWithFB() {
        callbackManager = CallbackManager.Factory.create();

        LoginManager.getInstance().registerCallback(callbackManager,
                new FacebookCallback<LoginResult>() {
                    @Override
                    public void onSuccess(LoginResult loginResult) {
                        // App code
                        handleFacebookAccessToken(loginResult.getAccessToken());
                    }

                    @Override
                    public void onCancel() {
                        // App code
                    }

                    @Override
                    public void onError(FacebookException exception) {
                        // App code
                        Toast.makeText(getContext(), exception.getMessage(), Toast.LENGTH_SHORT).show();
                    }
                });
    }

    private void handleFacebookAccessToken(AccessToken token) {
        Log.d(TAG, "handleFacebookAccessToken:" + token);

        AuthCredential credential = FacebookAuthProvider.getCredential(token.getToken());
        mAuth.signInWithCredential(credential)
                .addOnCompleteListener(getActivity(), 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();
                            Toast.makeText(getContext(), "success", Toast.LENGTH_SHORT).show();
                            //updateUI();
                            helper.navigate(R.id.homeFragment,null);
                        } else {
                            // If sign in fails, display a message to the user.
                            Log.w(TAG, "signInWithCredential:failure", task.getException());
                            Toast.makeText(getContext(), "Authentication failed.",
                                    Toast.LENGTH_SHORT).show();
                            //updateUI();
                        }
                    }
                });
    }


    @Override
    public void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
        super.onActivityResult(requestCode, resultCode, data);

        callbackManager.onActivityResult(requestCode, resultCode, data);

    }


}

when I run application it openes this activity when I click on Continue as Mohamed it returns back to register fragment and no users displays in users tab in firebase. code doesn't crash but doesn't display toast message and also doesn't show any messages in logcat.
if anyone can help me in that, Thanks in advance

I followed the facebook and firebase documentation but nothing helped me in my problem

0

There are 0 answers