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

标签 android firebase firebase-authentication firebaseui facebook-authentication

我正在使用电子邮件、Facebook 和谷歌提供商使用 Firebase-UI 身份验证。电子邮件和 Google 登录工作正常,但 Facebook 登录不工作。

我的 facebook 和 firebase 依赖项:

//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'

必要的 facebook 字符串:

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

在我的 Activity 中我有:

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);
}

在点击 Facebook 登录按钮之前: Sign in buttons

点击 Facebook 登录按钮后: Error page after clicking button

关闭 Facebook 错误页面后的错误日志:

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)

我已经搜索了其他问题,他们遇到了与我类似的问题,但他们的答案并没有解决我的问题。

提前致谢!

最佳答案

当你使用这个命令时

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

要获取您在 facebook 配置中输入的 key 哈希,它会要求您输入密码,确保您输入 android 作为密码。

关于android - com.firebase.ui.auth.FirebaseUiException : Provider error - Firebase-UI Authentication Facebook login not working,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51361829/

相关文章:

java - FirebaseListAdapter 无法将 java.lang.String 类型的对象转换为 foo.bar.ChatMessage 类型

android - 使用自定义不受支持的提供商的 Firebase 身份验证

javascript - 如何修复 "This operation is not supported in the environment this application is running on. "location.protocol"..."错误?

android - Monkeyrunner "drag"命令使用不正确的坐标?这是一个错误吗?

android - 此场景应用内计费应该做什么

即使正确使用 .indexOn,Firebase 也没有定义索引

javascript - 该表达式不会计算为函数,因此在使用 auth.currentUser 时无法调用它

java - 如何检查用户是否已通过 gmail 或 google 帐户登录?

android - 如何针对电池使用优化 Android 应用

android - 德尔福XE8。调音台。为什么Android平台上CLASS VAR的发布顺序不同?