Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

com.firebase.ui.auth.FirebaseUiException: Provider error - Firebase-UI Authentication Facebook login not working

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!

like image 940
Mr.O Avatar asked Jul 16 '18 12:07

Mr.O


2 Answers

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.

like image 144
Ahmad Melegy Avatar answered Nov 16 '22 19:11

Ahmad Melegy


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

like image 42
Amit kumar Avatar answered Nov 16 '22 18:11

Amit kumar