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