Firebase使用预建的UI Facebook登录名无法登录;显示登录错误:登录到此应用程序时出错

时间:2019-06-25 05:53:09

标签: android firebase-authentication facebook-login firebaseui

我正在使用Firebase的“使用内置UI登录”功能通过Google和Facebook帐户登录。 Google帐户运行正常。 当我尝试使用Facebook帐户选项时,

  1. 未安装Facebook应用程序的设备:登录到Facebook的弹出窗口打开,登录后,显示我的Facebook应用程序的授权,当我授权fb应用程序使用我的帐户详细信息时,弹出窗口将关闭, firebase登录UI页面再次显示。此阶段显示一个不确定的进度条,并且该进度条一直在进行,没有任何反应。

  2. 安装了Facebook应用的设备:Facebook应用已打开,并且不显示授权提示。而是显示“登录错误:将您登录到此应用程序时出错”

到目前为止,我已经完成了以下操作

  • 在我的Firebase控制台中启用了Facebook登录

  • 输入的应用ID和应用机密

  • 在fb应用设置中从Firebase控制台输入了OAuth重定向

  • 为应用程序中的firebase和facebook sdk添加了依赖项

  • 已添加

<string name="facebook_application_id" translatable="false">YOUR_APP_ID</string>
<string name="facebook_login_protocol_scheme" translatable="false">fbYOUR_APP_ID</string> 

在strings.xml中

  • 在fb应用程序设置中输入了正确的调试和释放键哈希值

  • 在fb应用程序设置中输入正确的软件包名称

  • 客户端OAuth登录,Web OAuth登录,强制HTTPS,嵌入式浏览器OAuth登录,对重定向URI使用严格模式-在fb应用程序设置中已打开

  • 应用程序状态为“在线”

某些代码:

依赖项

implementation 'com.google.firebase:firebase-auth:17.0.0'
implementation 'com.firebaseui:firebase-ui-auth:4.3.1'
implementation 'com.facebook.android:facebook-android-sdk:[5,6)'

登录界面调用

btnSignIn.onClick {
            startActivityForResult(
                AuthUI.getInstance()
                    .createSignInIntentBuilder()
                    .setIsSmartLockEnabled(false)
                    .setAvailableProviders(
                        arrayListOf(
                            AuthUI.IdpConfig.FacebookBuilder().build(),
                            AuthUI.IdpConfig.GoogleBuilder().build()
                        )
                    ).setLogo(R.mipmap.ic_launcher)
                    .build(),
                RC_FIREBASE_SIGN_IN
            )
        }

Google sigin会显示不确定的进度条一段时间,然后返回包含上述代码的页面,一切都会按预期进行。 FB登录不会从Firebase用户界面返回。 为什么fb登录不起作用?我在这里想念东西还是做错了什么?

2 个答案:

答案 0 :(得分:3)

我已经回答了类似的问题,因此我将分享相同的答案。希望this能解决问题。

或者,如果您尚未将SHA1值添加到Firebase控制台,请遵循this

答案 1 :(得分:0)

我有同样的问题。我的解决方案是单独设置FB SDK。我在FB中注册了App,也不要忘记清单。这是分步教程。

https://developers.facebook.com/docs/facebook-login/android/