简体   繁体   中英

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!

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.

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

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM