18

我正在使用FirebaseUI-Authentication。使用电子邮件或 Google 帐户登录成功,但无法使用Facebook登录。在启动AuthUI活动并尝试使用 Facebook 登录onActivityResult()后不调用。尝试登录后,应用程序卡在加载窗口。logcat 输出 FirebaseApp 日志:

通知后台状态更改侦听器。

在 Facebook 应用程序仪表板上,我设置了Valid OAuth redirect URI,正如 firebase 指南所述,我将应用程序设置为公开(它是公开的还是处于开发状态有关系吗?)。在Firebase 控制台中,我启用了 Facebook 登录并设置了App IDApp secret

是一段视频记录,显示在登录活动中单击 Facebook 登录后发生的情况。

为什么不onActivityResult()叫?

主要活动:

/**
 * Use this method to start the FirebaseUI sign in activity.
 */
public void switchToSignIn() {
    this.activity.startActivityForResult(
            AuthUI.getInstance()
                    .createSignInIntentBuilder()
                    .setProviders(
                            AuthUI.EMAIL_PROVIDER,
                            AuthUI.GOOGLE_PROVIDER,
                            AuthUI.FACEBOOK_PROVIDER)
                    .build(), RC_SIGN_IN);
}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (requestCode == RC_SIGN_IN) {
        if (resultCode == this.activity.RESULT_OK) {
            // user is signed in!
            Log.d(Constants.TAG_LoginHandler, "Sign in result: RESULT_OK");
            logUserInfo();
            tryAccessMainFragment();
        } else {
            Log.d(Constants.TAG_LoginHandler, "Sign in result: RESULT_CANCELLED");
            // user is not signed in. Maybe just wait for the user to press
            // "sign in" again, or show a message
        }
    }
}

构建.gradle:

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    testCompile 'junit:junit:4.12'
    compile 'com.android.support:appcompat-v7:23.4.0'
    compile 'com.android.support:support-v4:23.4.0'
    compile 'com.android.support:design:23.4.0'
    compile 'com.firebaseui:firebase-ui:0.4.0'
    compile 'com.squareup.picasso:picasso:2.5.2'
    compile 'de.hdodenhof:circleimageview:1.3.0'
}

apply plugin: 'com.google.gms.google-services'
4

3 回答 3

9

如果您使用的是 FirebaseUI,则必须将此确切字符串放入 strings.xml 中:

<string name="facebook_application_id" translatable="false">APPID</string>

APPID可以在您的developers.facebook.com仪表板上找到。

请参阅firebaseui-auth 自述文件

还要确保在 facebook 应用程序中添加您的 android 密钥哈希和 OAuth firebase URL。

于 2016-07-15T21:39:43.280 回答
1

尝试更新到新版本的 Google Play 服务,他们已经修复了一些与 Firebase 身份验证相关的问题。(虽然他们没有特别提到 Facebook 登录)

Google Play 服务已更新至 9.0.2 Google Play 服务 9.0.2 版现已推出。此版本修复了 Firebase 身份验证的一个已知问题,即 FirebaseAuthApi 在某些设备上不可用。

https://developers.google.com/android/guides/releases

于 2016-06-04T07:36:38.427 回答
1

这发生在我身上,也可能发生在某个人身上,我忘记在 firebase 控制台中启用 facebook 身份验证!转到 firebase conosle 并选择您的应用程序,然后转到身份验证->登录方法并启用 facebook 并从您的 facebook deevloper 项目添加应用程序 ID 和密钥

于 2020-05-11T09:38:42.840 回答