8

I am using Firebase-UI authentication using e-mail, facebook, and google providers. E-mail and Google sign in work fine but Facebook sign in is not working.

My facebook and firebase dependencies:

//Firebase
implementation 'com.google.firebase:firebase-core:16.0.1'

//Cloud Firestore
implementation 'com.google.firebase:firebase-firestore:17.0.2'

//Firebase Authentication
implementation 'com.google.firebase:firebase-auth:16.0.2'

//Firebase built-in Auth UI
implementation 'com.firebaseui:firebase-ui-auth:4.0.0'

//Firebase Storage
implementation 'com.google.firebase:firebase-storage:16.0.1'

// Required only if Facebook login support is required
implementation 'com.facebook.android:facebook-android-sdk:4.34.0'

//Google sign-in with Firebase Authentication
implementation 'com.google.android.gms:play-services-auth:15.0.1'

The necessary facebook strings:

<string name="facebook_application_id" translatable="false">#######</string>
<string name="facebook_login_protocol_scheme" translatable="false">fb#######</string>

In my activity I have:

void signIn() {
    AuthUI.IdpConfig facebookIdpConfig = new AuthUI.IdpConfig.FacebookBuilder()
            .setPermissions(Arrays.asList("user_friends"))
            .build();
    List<AuthUI.IdpConfig> providers = Arrays.asList(
            new AuthUI.IdpConfig.EmailBuilder().build(),
            new AuthUI.IdpConfig.GoogleBuilder().build(),
            facebookIdpConfig);

    startActivityForResult(
            AuthUI.getInstance().createSignInIntentBuilder()
                    .setTheme(AuthUI.getDefaultTheme())
                    .setLogo(R.drawable.com_facebook_button_login_logo)
                    .setAvailableProviders(providers)
                    .build(),
            RC_SIGN_IN);
}

Before clicking Facebook sign in button: Sign in buttons

After clicking Facebook sign in button: Error page after clicking button

Error log after closing the Facebook error page:

07-16 14:23:43.480 27301-27301/com.example E/AuthUI: A sign-in error occurred.
    com.firebase.ui.auth.FirebaseUiException: Provider error
        at com.firebase.ui.auth.data.remote.FacebookSignInHandler$Callback.onError(FacebookSignInHandler.java:117)
        at com.firebase.ui.auth.data.remote.FacebookSignInHandler$Callback.onCancel(FacebookSignInHandler.java:112)
        at com.facebook.login.LoginManager.finishLogin(LoginManager.java:654)
        at com.facebook.login.LoginManager.onActivityResult(LoginManager.java:245)
        at com.facebook.login.LoginManager$1.onActivityResult(LoginManager.java:174)
        at com.facebook.internal.CallbackManagerImpl.onActivityResult(CallbackManagerImpl.java:95)
        at com.firebase.ui.auth.data.remote.FacebookSignInHandler.onActivityResult(FacebookSignInHandler.java:87)
        at com.firebase.ui.auth.ui.idp.AuthMethodPickerActivity.onActivityResult(AuthMethodPickerActivity.java:225)
        at android.app.Activity.dispatchActivityResult(Activity.java:5563)
        at android.app.ActivityThread.deliverResults(ActivityThread.java:3496)
        at android.app.ActivityThread.handleSendResult(ActivityThread.java:3543)
        at android.app.ActivityThread.access$1200(ActivityThread.java:159)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1364)
        at android.os.Handler.dispatchMessage(Handler.java:99)
        at android.os.Looper.loop(Looper.java:176)
        at android.app.ActivityThread.main(ActivityThread.java:5419)
        at java.lang.reflect.Method.invokeNative(Native Method)
        at java.lang.reflect.Method.invoke(Method.java:525)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1046)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:862)
        at dalvik.system.NativeStart.main(Native Method)
     Caused by: null
        at com.firebase.ui.auth.data.remote.FacebookSignInHandler$Callback.onCancel(FacebookSignInHandler.java:112) 
        at com.facebook.login.LoginManager.finishLogin(LoginManager.java:654) 
        at com.facebook.login.LoginManager.onActivityResult(LoginManager.java:245) 
        at com.facebook.login.LoginManager$1.onActivityResult(LoginManager.java:174) 
        at com.facebook.internal.CallbackManagerImpl.onActivityResult(CallbackManagerImpl.java:95) 
        at com.firebase.ui.auth.data.remote.FacebookSignInHandler.onActivityResult(FacebookSignInHandler.java:87) 
        at com.firebase.ui.auth.ui.idp.AuthMethodPickerActivity.onActivityResult(AuthMethodPickerActivity.java:225) 
        at android.app.Activity.dispatchActivityResult(Activity.java:5563) 
        at android.app.ActivityThread.deliverResults(ActivityThread.java:3496) 
        at android.app.ActivityThread.handleSendResult(ActivityThread.java:3543) 
        at android.app.ActivityThread.access$1200(ActivityThread.java:159) 
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1364) 
        at android.os.Handler.dispatchMessage(Handler.java:99) 
        at android.os.Looper.loop(Looper.java:176) 
        at android.app.ActivityThread.main(ActivityThread.java:5419) 
        at java.lang.reflect.Method.invokeNative(Native Method) 
        at java.lang.reflect.Method.invoke(Method.java:525) 
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1046) 
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:862) 
        at dalvik.system.NativeStart.main(Native Method) 
07-16 14:23:43.485 27301-27301/com.gamifymykid.gamifymykid E/AuthUI: A sign-in error occurred.
    com.firebase.ui.auth.FirebaseUiException: Provider error
        at com.firebase.ui.auth.data.remote.FacebookSignInHandler$Callback.onError(FacebookSignInHandler.java:117)
        at com.firebase.ui.auth.data.remote.FacebookSignInHandler$Callback.onCancel(FacebookSignInHandler.java:112)
        at com.facebook.login.LoginManager.finishLogin(LoginManager.java:654)
        at com.facebook.login.LoginManager.onActivityResult(LoginManager.java:245)
        at com.facebook.login.LoginManager$1.onActivityResult(LoginManager.java:174)
        at com.facebook.internal.CallbackManagerImpl.onActivityResult(CallbackManagerImpl.java:95)
        at com.firebase.ui.auth.data.remote.FacebookSignInHandler.onActivityResult(FacebookSignInHandler.java:87)
        at com.firebase.ui.auth.ui.idp.AuthMethodPickerActivity.onActivityResult(AuthMethodPickerActivity.java:225)
        at android.app.Activity.dispatchActivityResult(Activity.java:5563)
        at android.app.ActivityThread.deliverResults(ActivityThread.java:3496)
        at android.app.ActivityThread.handleSendResult(ActivityThread.java:3543)
        at android.app.ActivityThread.access$1200(ActivityThread.java:159)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1364)
        at android.os.Handler.dispatchMessage(Handler.java:99)
        at android.os.Looper.loop(Looper.java:176)
        at android.app.ActivityThread.main(ActivityThread.java:5419)
        at java.lang.reflect.Method.invokeNative(Native Method)
        at java.lang.reflect.Method.invoke(Method.java:525)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1046)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:862)
        at dalvik.system.NativeStart.main(Native Method)

I have searched other questions who have had problems similar to mine but their answers do not solve my problem.

Thank you in advance!

live-love
  • 48,840
  • 22
  • 240
  • 204
Mr.O
  • 813
  • 7
  • 14
  • Possible duplicate of [FirebaseUI authentication with Facebook not working](https://stackoverflow.com/questions/37468316/firebaseui-authentication-with-facebook-not-working) – live-love Jan 07 '19 at 19:56

2 Answers2

8

When you use this command

keytool -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore | openssl sha1 -binary | openssl base64

to get the Key Hashes you put in facebook configurations, it will ask you for a password, make sure you enter android as the password.

Ahmad Melegy
  • 1,530
  • 1
  • 16
  • 18
  • 1
    I don't think there's anything wrong with the configurations, it's working on higher Android APIs – Mr.O Oct 04 '18 at 09:36
  • It's imperative you use "android" as the password... I was trying to use some other personal password and it wouldn't work. Thanks, it's working for me. – Shane Sepac Feb 08 '19 at 00:14
  • already did this ..but it gives error like this `com.firebase.ui.auth.FirebaseUiException: Developer error` – Ajay Mistry Oct 14 '19 at 09:47
1

Did you enable facebook sign In In firebase?

Check your app id and App secret key is the same as developer.facebook.com

In developer.facebook.com go to your app, And then Setting->Basic Check App Id and App Secret is same as facebook SignIn in firebase

Also, don't forget to add outh Url in your app in the Facebook developer page

Amit kumar
  • 149
  • 14